在Visual Studio 2008 Team System中,我刚刚在我的一个C#项目上运行了Code Analysis(来自Analyze菜单)。其中产生的警告是以下几点:C#保护字段私有,添加属性 - 为什么?
Microsoft.Design:因为现场“Connection._domain”是它的声明类型的可见外,它的辅助功能更改为私人和添加属性,使用相同的可访问性的字段目前已提供对其的访问。
它指的是以下字段:
public abstract class Connection
{
protected string _domain;
}
我不明白的建议背后的原因。这是我想什么要我做的:
public abstract class Connection
{
private string _domain;
protected string Domain { get { return _domain; } set { _domain = value; } }
}
两个问题:
- 我才明白什么正确的建议,要我做的,代码明智?
- 它为什么要我这样做?
另请参阅http://stackoverflow.com/questions/1410645/are-public-fields-ever-ok,http://stackoverflow.com/questions/480627/why-wont-anyone-accept-public-fields -in-c,http://stackoverflow.com/questions/1277572/should-i-use-public-properties-and-private-fields-or-public-fields-for-data和其他几个(搜索公共田)。他们都讨论公共领域,但通常也适用于受保护的领域。 – 2009-11-09 20:09:07