我有两个构造函数,它们分别向只读字段提供值。
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;
}
有一个构造函数直接接收值,另一个则进行一些计算并获取值,然后设置字段。
现在问题来了:
- 我不想复制设置代码。在这种情况下,只设置一个字段,但当然可能有多个字段。
- 为了使字段只读,我需要从构造函数中设置它们,因此我无法将共享代码“提取”到实用程序函数中。
- 我不知道如何从一个构造函数调用另一个构造函数。
有什么想法吗?
Sample(string)
中的所有内容将首先被执行,然后是Sample(int)
或者整数版本将首先被执行,然后再回到字符串版本?(就像在 Java 中调用super()
一样?) - Rosdi Kasimthis
。 - SLaks?:
或调用静态方法。 - SLaks