命名约定在C#中
什么是普遍接受的命名约定为C#? (函数,类,参数,局部variables,命名空间等)
微软在类库devise方面有一套非常出色的指导方针 ,其中包括关于命名的部分 。 总之(括号里的例子):
- 类/结构:PascalCase(
WebRequest
) - 接口:带I前缀的PascalCase(
IDisposable
) - 方法:PascalCase(
ToUpper
) - 属性:PascalCase(
Length
) - 事件:PascalCase(
Click
) - 命名空间:PascalCase(
System.Collections
;尽pipe在一个部分中有两个单词不常见) - 非常量variables,包括参数:camelCased(
keySelector
) - 常量:PascalCase(
Int32.MaxValue
) - 枚举:PascalCase,单数非标志和复数标志(
HttpStatusCode
,BindingFlags
) - 属性:具有“属性”后缀的PascalCase(
ThreadStaticAttribute
)
私人名字取决于你,但我倾向于遵循与其他一切相同的约定。 虽然很多地方使用“m_”或“_”作为实例variables的前缀,但是不鼓励使用匈牙利符号(以Win32的forms)。
微软的.NET标准是使用Pascal Case来命名空间,公共和受保护成员(基本上其他类可见)。 对于私人会员和地方变数,只要做你和你的团队最舒服的事情,就有更广阔的位置。
Resharper的指导方针build议
- types和名称空间UpperCamelCase
- 接口IUpperCamelCasetypes参数TUpperCamelCase
- 方法属性和事件UpperCamelCase Local
- variableslowerCamelCase局部常量lowerCamelCase
- 参数lowerCamelCase字段(非私有) UpperCamelCase
- 实例字段(私有) _lowerCamelCase
- 静态字段(私有) _lowerCamelCase
- 常量字段(不是私有的) UpperCamelCase
- 常量字段(私有) UpperCamelCase
- 静态只读字段(不是私有的) UpperCamelCase
- 静态只读字段(私有) UpperCamelCase
- 枚举成员UpperCamelCase
- 所有其他实体UpperCamelCase
不要低估遵守你正在工作的平台的命名约定的价值。
查看.NET Framework的参考资料,获取如何“适应”( http://msdn.microsoft.com/zh-cn/library/ms229335.aspx )的示例。
Jon Skeet给了你一个由微软撰写的优秀文章的链接: http : //msdn.microsoft.com/en-us/library/ms229042.aspx
您也可以使用独立的Microsoft FxCop(或者Code Analysis,如果您拥有Team Edition的话) http://www.microsoft.com/downloads/details.aspx?FamilyID=9aeaa970-f281-4fb0-aba1-d59d7ed09772&DisplayLang=en以检查遵守命名惯例。; 它有微软惯例的内置规则,这是你应该使用它的另一个原因!
Juval Lowy捅了一下这个在Programming .NET Components中 ,也看到了这个链接 。
我可以看看鲍德温,格雷,米菲尔特这本名为“ C#风格的元素 ”的瘦身书。 蓝皮书涵盖了命名约定,以及创build一致,干净,可读代码的许多其他方面。