相关疑难解决方法(0)

使用公共字段的最佳做法是什么?

当我写一个类时,我总是通过这样的公共属性公开私有字段:

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)

什么是最佳做法?这样做好吗?

.net c# field properties

23
推荐指数
3
解决办法
5035
查看次数

C#内联属性吗?

C#内联访问属性吗?我知道内联的JIT有32字节(指令?)限制,但它是内联属性还是只是方法调用?

.net c# clr optimization

12
推荐指数
4
解决办法
7658
查看次数

C#protected field to private,添加属性 - 为什么?

在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)

两个问题:

  1. 我是否正确理解了建议要求我做什么,代码明智?
  2. 为什么要我这样做?

c# static-analysis access-levels

5
推荐指数
1
解决办法
2687
查看次数