У меня есть два конструктора, которые передают значения только для чтения полей.
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;
}
Один конструктор получает значения напрямую, а другой выполняет некоторые вычисления и получает значения, затем устанавливает поля.
Теперь здесь подвох:
- Я не хочу дублировать установочный код. В этом случае только один поле установлено, но, конечно, может ну, будь больше, чем один.
- Чтобы поля были доступны только для чтения, мне нужно установить их из конструктора, так Я не могу "извлечь" общий код в функция полезности.
- Я не знаю как позвонить конструктор из другого.
Есть идеи?