首页 >后端开发 >C++ >在多个构造函数中初始化只读字段时如何避免代码重复?

在多个构造函数中初始化只读字段时如何避免代码重复?

DDD
DDD原创
2025-01-12 11:46:41617浏览

How Can I Avoid Code Duplication When Initializing Readonly Fields in Multiple Constructors?

在构造函数内调用另一个构造函数

在类中,构造函数用于在对象创建时初始化字段。在某些情况下,多个构造函数可能会向只读字段提供值。考虑以下类:

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

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