我注意到有些人声明了一个私有变量,然后是一个带有get和set语句的公共变量:
private string myvariable = string.Empty;
public string MyVariable
{
get { return myvariable; }
set { myvariable = value ?? string.Empty; }
}
Run Code Online (Sandbox Code Playgroud)
然后有些人只做以下事情:
public string MyVariable
{
get { return value; }
set { MyVariable = value; }
}
Run Code Online (Sandbox Code Playgroud)
作为一个没有智慧的熊(是的,我有孩子......你为什么问?)我无法弄清楚为什么你会选择一个而不是另一个.使用公共变量是否同样有效,您可以使用变量的set方法随时设置?
任何人都可以为我阐明这一点吗?
更新:在几个人指出它不能编译后,我纠正了第二个例子.对此感到抱歉,但问题仍然存在......
Jar*_*xon 19
您的第二个示例将无法编译,因为getter的值变量不存在.此外,setter会导致同名的StackOverflow异常!
在C#3.0中,您可以使用以下语法让编译器创建私有后备变量:
public string MyVariable { get; set; }
Run Code Online (Sandbox Code Playgroud)
但是,这不会给你第一个例子的额外空值检查.如果您需要在setter中使用自定义逻辑,则可能必须坚持使用第一个示例的方法.
| 归档时间: |
|
| 查看次数: |
2927 次 |
| 最近记录: |