在建構子內呼叫另一個建構子
在類別中,建構函式用於在物件建立時初始化欄位。在某些情況下,多個建構函數可能會向唯讀欄位提供值。考慮以下類別:
<code class="language-c#">public class Sample { public Sample(string theIntAsString) { int i = int.Parse(theIntAsString); _intField = i; } public Sample(int theInt) => _intField = theInt; public int IntProperty => _intField; private readonly int _intField; }</code>
這裡存在著兩個建構子。但是,當您想要避免重複欄位設定程式碼時,問題就出現了,因為唯讀欄位需要在建構函式中進行初始化。
幸運的是,有一個解決方案:使用建構函數鏈。透過在字串參數建構函數中加入以下行:
<code class="language-c#">public Sample(string str) : this(int.Parse(str)) { }</code>
您可以從字串參數建構子呼叫整數參數建構子。這將欄位初始化委託給現有程式碼,從而無需重複。
以上是在多個建構函式中初始化只讀欄位時如何避免程式碼重複?的詳細內容。更多資訊請關注PHP中文網其他相關文章!