一尘不染

从另一个调用一个构造函数

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;
}

一个构造函数直接接收值,另一个构造函数进行一些计算并获得值,然后设置字段。

现在这是要抓住的地方:

  1. 我不想重复设置代码。在这种情况下,只设置了一个字段,但是当然可能不止一个。
  2. 要使这些字段为只读,我需要从构造函数中进行设置,因此无法将共享代码“提取”到实用程序函数中。
  3. 我不知道如何从另一个调用一个构造函数。

有任何想法吗?


阅读 313

收藏
2020-05-19

共1个答案

一尘不染

像这样:

public Sample(string str) : this(int.Parse(str)) { }
2020-05-19