当我写一个类时,我总是通过这样的公共属性公开私有字段:
private int _MyField;
public int MyField
{ get{return _MyField; }
Run Code Online (Sandbox Code Playgroud)
什么时候可以公开这样的公共字段:
public int MyField;
Run Code Online (Sandbox Code Playgroud)
我正在创建一个名为Result的结构,我的意图是这样做:
public Result(bool result, string message)
{
Result = result;
Message = message;
}
public readonly int Result;
public readonly int Message;
Run Code Online (Sandbox Code Playgroud)
什么是最佳做法?这样做好吗?
C#内联访问属性吗?我知道内联的JIT有32字节(指令?)限制,但它是内联属性还是只是纯方法调用?
在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)
两个问题: