我有一个使用自动实现属性的简单类:
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();}
}
}
我试图确保我了解使用自动实现的属性的含义,以及当/如果我需要更改某些内容时它将带来什么。我假设重构(如上所示)不是重大更改,因为属性基本保持不变;只需要在类中做一些工作就可以保持这种状态并添加所需的逻辑。
另一个可能更有意义的例子是,我需要在使用 setter 或 getter 时调用一些方法;更多然后改变价值。
这似乎是对设置属性的代码行和代码行的公平权衡。