Sar*_*els 5 c# static-analysis access-levels
在Visual Studio 2008 Team System中,我刚刚在我的一个C#项目上运行了Code Analysis(来自Analyze菜单).产生的警告之一如下:
Microsoft.Design:因为字段"Connection._domain"在其声明类型之外是可见的,所以将其可访问性更改为private,并添加一个具有与当前字段相同的可访问性的属性,以提供对它的访问.
它指的是以下字段:
public abstract class Connection
{
protected string _domain;
}
Run Code Online (Sandbox Code Playgroud)
我不明白这个建议背后的原因.这是我认为它要我做的事情:
public abstract class Connection
{
private string _domain;
protected string Domain { get { return _domain; } set { _domain = value; } }
}
Run Code Online (Sandbox Code Playgroud)
两个问题:
Gar*_*ill 13
是的,我认为您理解正确 - 尽管在C#的更高版本中,有一种更简洁的方式来编写它:
public string Domain { get; set; }
Run Code Online (Sandbox Code Playgroud)
为什么?这都是关于封装的.如果按照建议执行操作,则可以稍后更改Domain属性的定义,而不会影响使用该属性的任何调用代码.由于您的类是公开的,并且可能会被您没有编写的代码调用,这可能非常重要.
| 归档时间: |
|
| 查看次数: |
2687 次 |
| 最近记录: |