首页 >后端开发 >C++ >如何在 C# 中调用一个构造函数来初始化只读字段?

如何在 C# 中调用一个构造函数来初始化只读字段?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-12 11:52:43533浏览

How Can I Call One Constructor from Another in C# to Initialize Readonly Fields?

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn