在构造函数内调用另一个构造函数
在类中,构造函数用于在对象创建时初始化字段。在某些情况下,多个构造函数可能会向只读字段提供值。考虑以下类:
<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中文网其他相关文章!