C# 中的构造函数链:只读字段初始化的解决方案
有时,您需要使用多个构造函数来初始化 readonly
字段。 由于 readonly
字段只能在构造函数内赋值,因此简单地在构造函数之间复制初始化逻辑是低效且容易出错的。 C# 提供了一个干净的解决方案:构造函数链。
this
构造函数链利用 this
关键字从一个构造函数调用另一个构造函数。 这会重定向初始化过程,消除冗余代码。
这是一个例子:
<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>
这个Sample
类演示了两个构造函数。第一个构造函数接受一个字符串,将其解析为整数,然后 chains 到第二个构造函数,传递解析后的整数。 第二个构造函数直接初始化 readonly
字段。 这种方法使初始化逻辑保持集中,同时为类的实例化方式提供了灵活性。
使用构造函数链可以避免重复的初始化逻辑,从而提高代码的可重用性并降低不一致的风险,从而使代码更简洁、更易于维护。
以上是如何在 C# 中调用一个构造函数来初始化只读字段?的详细内容。更多信息请关注PHP中文网其他相关文章!