帕斯卡尔或骆驼案?
我使用camel case命名私有字段和私有静态字段。我用pascal case命名consts(如MS命名约定所示)(无论私有还是公共)....
那么private static readonly呢?逻辑说骆驼案例...但私有静态只读在功能上像一个const ...对吗?
答案 0 :(得分:18)
在字段名称中使用Pascal大小写 ...
字段的命名准则适用于静态公共和受保护字段。您不应该定义公共或受保护的实例字段。
只读静态字段= 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)
我不担心匹配任何其他人的约定 - 只要你符合你使用的任何命名约定,你选择做什么并不重要。还有更重要的事情需要担心。