私有静态只读字段大写

时间:2011-01-02 06:02:07

标签: c# naming-conventions

帕斯卡尔或骆驼案?

我使用camel case命名私有字段和私有静态字段。我用pascal case命名consts(如MS命名约定所示)(无论私有还是公共)....

那么private static readonly呢?逻辑说骆驼案例...但私有静态只读在功能上像一个const ...对吗?

5 个答案:

答案 0 :(得分:18)

  

在字段名称中使用Pascal大小写 ...

     

字段的命名准则适用于静态公共和受保护字段。您不应该定义公共或受保护的实例字段。

MSDN Names of Type Members

  

只读静态字段= Pascal

MSDN Official Naming Convention

一般规则:

  

所有公开使用 Pascal 大小写   成员,类型和命名空间名称   由多个单词组成。

     

请注意,此规则不适用于   实例字段。原因是这样的   详细的会员设计   指南,你不应该公开使用   实例字段。

     

请使用驼峰套管作为参数   名。

完整列表:

IDENTIFIER             CASE        EXAMPLE
----------------------+-----------+---------------
Class                  Pascal      AppDomain 
Enumeration types      Pascal      ErrorLevel 
Enumeration values     Pascal      FatalError 
Event                  Pascal      ValueChanged 
Exception class        Pascal      WebException 
Read-only static field Pascal      RedValue 
Interface              Pascal      IDisposable 
Method                 Pascal      ToString 
Namespace              Pascal      System.Drawing 
Parameter              Camel       typeName 
Property               Pascal      BackColor 

MSDN Official Naming Convention

还要考虑

答案 1 :(得分:9)

不,private static readonly本身并不像const那样。考虑:

private static readonly IList<int> foo = new List<int>();

你仍然可以foo.Add(0);。当对象本身以及任何引用的对象都是不可变的时,这些字段只是const-like。

答案 2 :(得分:9)

我在StyleCop中收到警告:

    private readonly Color LabelBackColor = Color.Black;

警告364 SA1306:CSharp.Naming:变量名和私有字段名必须以小写字母开头:LabelBackColor。

请参阅this discussion:private readonly字段应以小写字符开头。这意味着Camel案例。

答案 3 :(得分:4)

以下是一个示例参考源。有趣的是,微软在这里使用了下划线用于私有字段,而camelCase(没有下划线)用于私有静态只读http://referencesource.microsoft.com/#mscorlib/system/collections/arraylist.cs,3e3f6715773d6643。但是第二个例子也表明,微软没有自己的字段命名标准:http://referencesource.microsoft.com/#mscorlib/system/collections/hashtable.cs

答案 4 :(得分:2)

我不担心匹配任何其他人的约定 - 只要你符合你使用的任何命名约定,你选择做什么并不重要。还有更重要的事情需要担心。