Private Eigenschaften können sehr nützlich sein, um das Verhalten von Dingen zu kapseln, die innerhalb Ihrer Klasse liegen. Nur weil sie privat sind, heißt das nicht, dass Sie den syntaktischen Zucker, den Ihnen die Eigenschaften verleihen, nicht ausnutzen sollten.
Das angegebene Beispiel ist jedoch schlecht. Boilerplate Property Getter und Setter wie dieses sind fast immer eine schlechte Idee. Wenn Sie C # 3.0 oder höher verwenden, sind automatische Eigenschaften eine viel bessere Idee:
private string Whatever { get; set; };
Dies ist kürzer, sauberer und viel besser lesbar. Tatsächlich ist es kaum länger, als nur die Hintergrundvariable zu deklarieren.
Am wichtigsten ist jedoch, dass automatische Eigenschaften jederzeit in vollständige Eigenschaften konvertiert werden können, ohne die Semantik des restlichen Programms zu ändern! Wenn Sie also eine Validierung oder Fehlerbehandlung hinzufügen müssen, können Sie dies auf einfache Weise tun.
So wie es ist, dachte ich immer, dass es eine Schande ist, dass Sie keine schreibgeschützte Eigenschaft haben können, um zu erzwingen, dass nur in den Wert im Konstruktor geschrieben werden kann (ich bevorzuge unveränderliche Typen ), aber dies wurde in C # 6.0 als hinzugefügt "Auto-Property Initializers", mit denen Sie Folgendes tun können:
private string Whatever { get; } = ...;
oder
private string Whatever { get; };
zusammen mit
Whatever = ...;
im Konstruktor.