Heim >Backend-Entwicklung >C++ >Wie kann ich in C# einen Konstruktor von einem anderen aufrufen, um schreibgeschützte Felder zu initialisieren?
Konstruktorverkettung in C#: Eine Lösung für die schreibgeschützte Feldinitialisierung
Manchmal müssen Sie readonly
Felder mit mehreren Konstruktoren initialisieren. Da readonly
-Feldern nur Werte innerhalb eines Konstruktors zugewiesen werden können, ist das einfache Duplizieren der Initialisierungslogik über Konstruktoren hinweg ineffizient und fehleranfällig. C# bietet eine saubere Lösung: Konstruktorverkettung.
Die Kraft von this
Konstruktorverkettung nutzt das Schlüsselwort this
, um einen Konstruktor von einem anderen aufzurufen. Dadurch wird der Initialisierungsprozess umgeleitet und redundanter Code eliminiert.
Hier ist ein Beispiel:
<code class="language-csharp">public class Sample { public Sample(string theIntAsString) : this(int.Parse(theIntAsString)) { } public Sample(int theInt) => _intField = theInt; public int IntProperty => _intField; private readonly int _intField; }</code>
Diese Sample
-Klasse demonstriert zwei Konstruktoren. Der erste Konstruktor nimmt eine Zeichenfolge, analysiert sie in eine Ganzzahl und verkettet dann an den zweiten Konstruktor, wobei er die analysierte Ganzzahl übergibt. Der zweite Konstruktor initialisiert direkt das Feld readonly
. Dieser Ansatz hält die Initialisierungslogik zentralisiert und bietet gleichzeitig Flexibilität bei der Instanziierung der Klasse.
Die Verwendung der Konstruktorverkettung fördert einen saubereren und wartbareren Code, indem doppelte Initialisierungslogik vermieden wird, wodurch die Wiederverwendbarkeit des Codes verbessert und das Risiko von Inkonsistenzen verringert wird.
Das obige ist der detaillierte Inhalt vonWie kann ich in C# einen Konstruktor von einem anderen aufrufen, um schreibgeschützte Felder zu initialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!