现在,如果您阅读MSDN for C#中的命名约定,您会注意到它声明属性始终优先于public和protected字段.有些人甚至告诉我,你永远不应该使用公共或受保护的领域.现在我同意我还没有找到一个理由,我需要有一个公共领域,但受保护的领域真的那么糟糕?
我可以看到它,如果您需要确保在获取/设置值时执行某些验证检查,但是在我看来,很多时候它似乎只是额外的开销.我的意思是说我有一个类GameItem,其中包含baseName,prefixName和suffixName的字段.我为什么要承担创建属性(C#)或访问器方法的开销以及我将要发生的性能损失(如果我对应用程序中的每个字段执行此操作,我相信它会稍微增加一点,尤其是某些语言PHP或某些具有性能的应用程序是否像游戏一样至关重要?
当我写一个类时,我总是通过这样的公共属性公开私有字段:
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)
什么是最佳做法?这样做好吗?