C# Private Setter
Eigenschaften in C#
sind eine Kombination aus Feldern und Methoden. Sie sind keine Variablen und können daher nicht als out
- oder ref
-Parameter in Funktionen übergeben werden.
Sie helfen bei der Kontrolle des Zugriffs auf Daten, führen eine Validierung von Daten vor der Bearbeitung durch und fördern einen saubereren Code, da er die Deklaration expliziter privater Variablen mit Hilfe von getters
und setters
vermeidet.
Bevor wir tief in die Verwendung von private setters
eintauchen, lassen Sie uns zuerst die Konzepte von getters
und setters
diskutieren und langsam zu den Rollen von Zugriffsmodifikatoren
übergehen.
Verwendung von die Getter
als Get-Accessor in C#
Der Code für getter
wird beim Lesen des Wertes ausgeführt. Da es sich um eine Leseoperation auf einem Feld handelt, muss ein getter
immer das Ergebnis zurückliefern.
Ein öffentlicher
Getter bedeutet, dass die Eigenschaft für alle lesbar ist. Während der private
Getter impliziert, dass die Eigenschaft nur von der Klasse gelesen werden kann und daher eine schreibgeschützte Eigenschaft ist.
Wir müssen je nach Bedarf zwischen getters
wählen.
Verwendung von die setters
als Set Accessor in C#
Beim Schreiben des Wertes wird der Code für setters
ausgeführt.
Es ist eine Schreiboperation und daher eine void-Methode. Es nimmt als Argument den Wert für das Feld.
Der Wert kann der Eigenschaft in ihrer aktuellen Form zugewiesen werden, oder wir können vor der Zuweisung einige Berechnungen durchführen.
Der public setter
bedeutet, dass der Wert von jedem Objekt bearbeitet werden kann, das außerhalb der Klasse vorhanden ist. Andererseits bedeutet der private setter
, dass die Eigenschaft schreibgeschützt ist und nicht von anderen geändert werden kann.
Nachdem wir nun den Unterschied zwischen getter
, setter
und den Auswirkungen von Accessor-Modifikatoren
kennen, können wir uns speziell mit private Setter
befassen.
public int Prop { get; private set; }
// The below code is the same as above, see the cleanliness use of auto property brings.
private int prop;
public int Prop {
get { return prop; }
}
Wir können aus dem obigen Code ersehen, dass die Verwendung von private setts
nicht nur eine gute Codierungspraxis ist, sondern unseren Code inhärent gekapselt macht.
Die Encapsulation
bedeutet, dass die Objekte in unserer Klasse an einer Schnittstelle haften bleiben und ihren Zustand immer beibehalten. Wenn Sie hier verhindern, dass die Eigenschaft von außen bearbeitet werden kann, werden Klassen robuster und leistungsfähiger.
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn