Ich habe mich gefragt, was als bewährte Praxis in C# betrachtet wird, private/geschützte Member mit öffentlichen Gettern oder öffentliche Getter mit privaten/geschützten Settern?
public int PublicGetPrivateSetter
{
get;
private set;
}
private int _privateMember;
public int PublicGetPrivateMember
{
get { return _privateMember; }
}
Ich finde, dass die Verwendung eines privaten Members in Ihrem Code expliziter macht, dass es sich um einen privaten Setter handelt (unter Verwendung von Namenskonventionen). Andererseits ermöglicht die Verwendung von privaten Settern die Verwendung von virtuellen (geschützten), die Schreibweise von weniger Code, bietet weniger Raum für Fehler und bietet Ihnen die Möglichkeit, später ein Seiteneffekt hinzuzufügen, wenn Sie es benötigen.
Ich konnte keine bewährte Praxis finden oder sogar feststellen, ob eine besser ist als die andere. Von dem, was ich gesehen habe, verwenden Menschen in der Regel 80% der Zeit (aus dem Code, den ich gesehen habe) keine privaten Setter... Ich bin mir nicht sicher, ob dies daran liegt, dass die Leute nichts über private Setter wissen, oder ob es als besser erachtet wird, tatsächlich private Member zu verwenden.
EDIT:
Tatsächlich gibt es weitere Vorteile, die ich vergessen habe, wenn man private Member verwendet, z.B. Standardwerte und die Verwendung von readonly.