Цель автоматических свойств в.NET

Почему это:

    public string Foo {get;set;}

рассмотренный лучше, чем это:

    public string Foo;

Я не могу ни за что в жизни разработать его. Кто-либо может пролить некоторый свет?

Спасибо

8
задан Paul Sasik 27 May 2011 в 19:06
поделиться

2 ответа

Поскольку вы можете прозрачно (с точки зрения клиентского кода) изменить реализацию установщика / получателя, тогда как вы не можете сделать то же самое, если вы напрямую открываете базовое свойство (поскольку оно не будет двоично-совместимым).

Существует Тем не менее, определенный запах кода, связанный с автоматическими свойствами, позволяет легко раскрыть некоторую часть состояния вашего класса, не задумываясь. Это также произошло с Java, где во многих проектах вы найдете пары get / setXxx повсюду, раскрывая внутреннее состояние (часто без необходимости, «на всякий случай»), что существенно отображает свойства. общественные.

12
ответ дан 5 December 2019 в 12:54
поделиться

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

1
ответ дан 5 December 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: