у меня есть простой класс с помощью авто Реализуемой Недвижимости Болгарии Недвижимости:Изучение Auto-Реализовано Свойство
Public Class foo
{
public foo() { }
public string BarName {get; set;}
}
я, очевидно, использовать переменную BarName на протяжении всех моего класса и теперь нужно добавить логику, когда значение свойства установлено (это должен быть весь верхний регистр, go figure). Означает ли это, что мне нужно создать приватную переменную для BarName, например. _BarName и изменить текущую переменную BarName, используемую в моем классе, на _BarName?
Public Class foo
{
public foo() {}
private string _BarName = "";
public string BarName
{
get {return _BarName;}
set {_BarName = Value.ToString().ToUpper();}
}
}
Я пытаюсь убедиться, что я понимаю последствия использования авто Реализуемый свойства, и что это повлечет за собой вниз по дороге, когда/если мне нужно что-то изменить. Я предполагаю, что рефакторинг, как показано выше, не является изменением breaking, потому что свойство в основном остается таким же; это просто заняло немного работы внутри класса, чтобы сохранить его таким образом и добавить необходимую логику.
Другим примером, который может быть более значимым, является то, что мне нужно вызвать какой-либо метод, когда используется сеттер или геттер; более того, изменяя значение.
Это похоже на справедливую сделку с линиями и строками кода для настройки свойств.
А, так я сам использую свойство для доступа к переменной? Не может этого сделать, если он только для чтения. Код, который я имел в виду, что необходимо изменить/in/class – Brettski
В вашем примере это не только для чтения.Однако теперь, когда вы его поднимете, я отвечу, что вы можете сделать собственность общедоступной и конфиденциальной с помощью {get; частный набор; }, который позволит вам написать его изнутри вашего класса. – hurst