Вызов метода экземпляра из конструктора в C #

У меня есть довольно длинный конструктор, который выполняет различные работы по инициализации, и поэтому я хотел выделить часть этой работы в некоторые функции. Это заставило меня задуматься, следует ли мне создавать указанный экземпляр функции или статические методы. Я понимаю риск вызова виртуальной функции из конструктора, но я также думаю, что есть что-то неправильное в вызове метода экземпляра для объекта, который не создан на 100%. Конечно, это противоречие в терминах.

Мне было бы интересно узнать мнение людей по этому поводу. Я также обнаружил, что, используя статический метод для возврата инициализированной переменной, я могу сделать целевой член доступным только для чтения. Вот упрощенная иллюстрация моего сценария.

public class A
{
   private readonly string _foo;

   public A()
   {  
       _foo = InitialiseFoo();
   }

   private static InitialiseFoo()
   {
       // Do stuff
       return new string ("foo");
   }
}
5
задан Mr Davies 14 October 2011 в 08:39
поделиться