Возможные дубликаты:
Должен ли я использовать общедоступные свойства и частные поля или общедоступные поля для данных?
Разница между автоматическими свойствами и открытым полем в С# 3.0
Люди, похоже, догматически настаивают на использовании публичных свойств над полями, но почему они настолько важны для простых свойств?
Как
public int Foo { get; set; }
настолько невероятно отличается от
public int Foo;
?
Сверху моей головы я могу думать о нескольких практических различиях между ними:
- Доступ к члену с использованием отражения (редкие и наиболее достойные отражающие алгоритмы будут учитывать разницу)
- Вторая запись позволяет использовать поле в качестве допустимого параметра для параметров ref и out, что, по-видимому, будет преимуществом для использования версии поля
- Поля не работают в Remoting (возможно, я никогда не использовал удаленный доступ, но я думаю, что они не будут)?
Кроме этих довольно редких случаев, изменение Foo для вычисленного свойства позже приводит к изменению 0 строк кода.