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