Jef*_*eff 34 c# naming-conventions
帕斯卡或骆驼案?
我使用驼峰案例命名私有字段和私有静态字段.我用pascal case命名consts(如MS命名约定所示)(无论私有还是公共)....
那么私有静态readonly怎么样?逻辑说骆驼案例...但私有静态只读功能就像一个const ...对吗?
小智 22
在字段名称中使用Pascal大小写 ...
字段的命名准则适用于静态公共字段和受保护字段.您不应定义公共或受保护的实例字段.
只读静态字段= Pascal
通用规则:
对所有 包含多个单词的公共成员,类型和命名空间名称使用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
还考虑一下
不,private static readonly根本就不是这样const.考虑:
private static readonly IList<int> foo = new List<int>();
Run Code Online (Sandbox Code Playgroud)
你仍然可以foo.Add(0);.当对象本身以及任何引用的对象是不可变的时,这些字段只是const-like.
小智 9
我在StyleCop中收到警告:
private readonly Color LabelBackColor = Color.Black;
Run Code Online (Sandbox Code Playgroud)
警告364 SA1306:CSharp.Naming:变量名和私有字段名必须以小写字母开头:LabelBackColor.
请参阅此讨论:private readonly字段应以小写字符开头.这意味着Camel案例.
这是一个示例参考源。有趣的是,微软在这里对私有字段使用下划线,对私有静态只读http://referencesource.microsoft.com/#mscorlib/system/collections/arraylist.cs,3e3f6715773d6643使用驼峰式(无下划线)。但第二个例子也表明,微软没有自己的字段命名标准:http : //referencesource.microsoft.com/#mscorlib/system/collections/hashtable.cs