Конструкторы C #

Может ли кто-нибудь посоветовать мне, какой подход использовать при написании C # конструкторов?

В других языках, например C ++ , все в порядке - вы обычно не делаете внутренние поля видимыми и не предоставляете для них геттеры / сеттеры.

Это означает, что вы можете предоставить своему классу конструкторы, которые инициализируют все / некоторые из ваших локальных членов и будут счастливы.


C # , однако, имеет свойства , что позволяет нам написать что-то вроде:

Class x = new Class { Field1 = new Field1 ...., Field2 = new Field2 }

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

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

Теперь - можно ли удалить избыточные конструкторы и разрешить создание объекта с помощью инициализации поля?

Каковы недостатки этого подхода? Может ли кто-нибудь дать общие рекомендации по объединению использования полей и конструкторов, возможно, некоторые практические правила ?

Спасибо.

12
задан Yippie-Ki-Yay 30 March 2011 в 12:54
поделиться