У меня есть простой класс, использующий автоматически реализованные свойства:
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();}
}
}
Я пытаюсь убедиться, что я понимаю последствия использования автоматически реализуемых свойств и что это повлечет за собой, когда / если мне нужно что-то изменить. Я предполагаю, что рефакторинг, как показано выше, не является ломающимся изменением, потому что свойство в основном остается прежним; Просто потребовалась небольшая работа внутри класса, чтобы сохранить его и добавить необходимую логику.
Другой пример, который может быть более значимым, - это то, что мне нужно вызывать какой-то метод, когда используется метод установки или метод получения; больше, чем изменение значения.
Кажется, это справедливый компромисс между строками и строками кода для настройки свойств.