Joh*_*ski 3 c# asp.net properties data-members
如果我有一个像这样的简单类设置:
class MyClass
{
private string _myName = string.Empty;
public string MyName
{
get
{
return _myName;
}
}
public void DoSomething()
{
// Get the name...
string name = string.Empty;
name = _myName;
// OR
name = MyName;
// ...and do something with it...
}
}
Run Code Online (Sandbox Code Playgroud)
我应该使用哪个,公共财产或数据成员?
显然,在这个例子中它没有什么区别,因为它们都只是引用相同的变量.但是公共财产的现实用途呢?
一般来说,公共属性执行得非常少,在这种情况下可以调用它们吗?或者人们将大量功能放入他们的公共属性中,不应该被内部类引用调用?
我在另一篇文章中看到了一些关于不向Properties中添加大量功能的内容,因为在调试器中检查它们可以执行意外的结果.真的吗?
使用属性 - 即使在类本身内,也可以应用封装在setter和getter中的任何逻辑.如果getter和setter中没有逻辑,那么使用字段本身仍然是不安全的,因为如果您希望在访问这些字段时添加逻辑,则必须重构更多.
我相信您应该将该物业作为一般惯例参考.虽然在这个特定的例子中它确实没有太大的区别,但get/set访问器提供了在抓取属性时做更多工作的能力.例如,我们的许多属性"get"访问器在更复杂的数据结构中执行一些查找,或者如果没有定义任何内容则设置默认值.因此,类的其余部分可以利用这种逻辑,我们养成使用属性的习惯.因此,我们不必过于考虑,我们试图概括实践.
可能存在我们想要直接访问基础数据成员的情况,但是这是具有特定原因的有意识决策,并且它往往是例外.