У меня есть довольно длинный конструктор, который выполняет различные работы по инициализации, и поэтому я хотел выделить часть этой работы в некоторые функции. Это заставило меня задуматься, следует ли мне создавать указанный экземпляр функции или статические методы. Я понимаю риск вызова виртуальной функции из конструктора, но я также думаю, что есть что-то неправильное в вызове метода экземпляра для объекта, который не создан на 100%. Конечно, это противоречие в терминах.
Мне было бы интересно узнать мнение людей по этому поводу. Я также обнаружил, что, используя статический метод для возврата инициализированной переменной, я могу сделать целевой член доступным только для чтения. Вот упрощенная иллюстрация моего сценария.
public class A
{
private readonly string _foo;
public A()
{
_foo = InitialiseFoo();
}
private static InitialiseFoo()
{
// Do stuff
return new string ("foo");
}
}