Может ли кто-нибудь посоветовать мне, какой подход использовать при написании C #
конструкторов?
В других языках, например C ++
, все в порядке - вы обычно не делаете внутренние поля видимыми и не предоставляете для них геттеры / сеттеры.
Это означает, что вы можете предоставить своему классу конструкторы, которые инициализируют все / некоторые из ваших локальных членов и будут счастливы.
C #
, однако, имеет свойства
, что позволяет нам написать что-то вроде:
Class x = new Class { Field1 = new Field1 ...., Field2 = new Field2 }
Это позволяет создавать цепочки для построения объекта и, как я предполагаю, может удалить множество конструкторов, что потребовалось бы, если бы у нас не было свойств
.
Комбинируя это со значениями по умолчанию для свойств, как я предполагаю, мы можем полностью избавиться от неспециализированных конструкторов, которые на самом деле выполняют некоторую работу.
Теперь - можно ли удалить избыточные конструкторы и разрешить создание объекта с помощью инициализации поля?
Каковы недостатки этого подхода? Может ли кто-нибудь дать общие рекомендации по объединению использования полей и конструкторов, возможно, некоторые практические правила
?
Спасибо.