У меня есть сегмент кода:
public class MyClass
{
private string _myProperty;
public string MyProperty
{
get
{
return _myProperty;
}
set
{
_myProperty = value;
}
}
}
Какой смысл здесь? Я мог бы объявить строку _myProperty
общедоступной, и любой из моих объектов класса сможет напрямую обращаться к ним и получить или установить значение.
Вместо этого мы создаем _myProperty
private и используем get и устанавливаем для доступа к ним, используя объект класса.
В любом случае объект класса может получить к ним доступ, и результат всегда будет таким же.
Так зачем использовать этот подход? Это только потому, что я могу реализовать несколько ограничений в сеттер?
Кроме того, какой вред будет вызывать переменные-члены? В этом примере я мог бы раскрыть _myProperty
как общедоступный, а не ограничивать его только этим классом, только сделав его закрытым, как предполагал ООП.