У меня есть простой класс, использующий автоматически реализованные свойства:
Public Class foo
{
public foo() { }
public string BarName {get; set;}
}
Я, очевидно, использую переменную BarName во всем своем классе, и теперь мне нужно добавить логику, когда значение свойства установлено (оно должно быть полностью в верхнем регистре, см. Рисунок). Означает ли это, что мне нужно создать частную переменную для BarName, например. _BarName и изменить текущую переменную BarName, используемую в моем классе, на _BarName?
Public Class foo
{
public foo() {}
private string _BarName = "";
public string BarName
{
get {return _BarName;}
set {_BarName = Value.ToString().ToUpper();}
}
}
Я пытаюсь убедиться, что понимаю последствия использования автоматически реализуемых свойств и что это повлечет за собой в будущем, когда / если мне нужно что-то изменить. Я предполагаю, что рефакторинг, показанный выше, не является нарушение изменения, потому что свойство в основном остается прежним; просто потребовалось немного поработать внутри класса, чтобы сохранить его таким и добавить необходимую логику.
Другой пример, который может быть более значимым, - это то, что мне нужно вызвать какой-то метод, когда используется сеттер или геттер; больше, чем изменение значения.
Это кажется справедливым компромиссом для строк и строк кода для настройки свойств.