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

Mic*_*cah 23 .net c# field properties

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

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)

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

Jon*_*eet 31

当它们是(静态)常量时,我​​只暴露公共字段 - 即便如此,我通常也会使用属性.

"常量"是指任何只读,不可变的值,而不仅仅是可以在C#中表示为"const"的值.

甚至readonly 实例变量(如Result和Message)也应该封装在我视图的属性中.

有关详细信息,请参阅此文章.

  • @Toad:不,它没有...因为JIT编译器无论如何都会内联琐碎的属性. (13认同)

Kon*_*lph 17

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

"不要."另请参阅: 是否应始终禁止受保护的属性?这涉及到受保护的领域,但对于公共领域来说更是如此.


Dav*_*kle 9

使用属性.现在C#有自动属性很容易!

  • 在这里......自动属性是shiznit! (2认同)