Rufen Sie einen anderen Konstruktor in C# auf
Beim Umgang mit Konstruktoren, die schreibgeschützte Felder initialisieren, ist es wünschenswert, eine Duplizierung der Logik zu vermeiden. Darüber hinaus gewährleistet die ausschließliche Festlegung schreibgeschützter Felder im Konstruktor die Datenintegrität. Allerdings können Konstruktoren andere Konstruktoren nicht direkt aufrufen.
Lösung: Methodenkettenaufruf
Um diese Einschränkung zu überwinden, kann Methodenverkettung verwendet werden. In C# umfasst dies den Aufruf eines neuen Konstruktors mit Parametern eines vorhandenen Konstruktors. Mit dieser Syntax können Sie mehrere Felder initialisieren und gleichzeitig Ihre Setup-Logik zentralisieren:
<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>
Sie können die Feldinitialisierung an einen Konstruktor delegieren, der ein ganzzahliges Argument akzeptiert, indem Sie ihn von einem Konstruktor aufrufen, der ein Zeichenfolgenargument akzeptiert. Dadurch wird Codeduplizierung vermieden und konsistente Feldeinstellungen sichergestellt.
Das obige ist der detaillierte Inhalt vonWie kann ich in C# einen Konstruktor von einem anderen aufrufen, um Codeduplizierung zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!