如果我有一个简单的类设置,例如:
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...
}
}
我应该使用哪个公共属性或数据成员?
显然,在此示例中,这没有什么区别,因为它们都只是引用相同的变量。但是,现实世界中对公共财产的使用又如何呢?
通常,公共财产执行得很少,在这种情况下可以调用它们吗?还是人们在其公共属性中添加了很多不应由内部类引用调用的功能?
我在另一篇文章中看到了有关不在属性中添加大量功能的信息,因为在调试器中检查它们可能会执行意外的结果。真的吗?
最佳答案
使用属性-应该封装在setter和getter中的任何逻辑,即使在类本身中也应适用。如果在getter和setter中没有逻辑,那么使用这些字段本身仍然不安全,因为如果您希望在任何时候在对这些字段的访问周围添加逻辑,则您将需要进行更多的重构。