c#中的命名约定

时间:2009-10-24 15:42:39

标签: c# naming-conventions

c#的普遍接受的命名约定是什么? (函数,类,参数,局部变量,命名空间等)

6 个答案:

答案 0 :(得分:63)

Microsoft有一个很棒的set of guidelines on class library design,包括section on naming。简而言之(括号中的例子):

  • Classes / Structs:PascalCase(WebRequest
  • 接口:带前缀为{IDisposable
  • 的PascalCase
  • 方法:PascalCase(ToUpper
  • 属性:PascalCase(Length
  • 事件:PascalCase(Click
  • 命名空间:PascalCase(System.Collections;虽然在一个部分中只有两个单词,但却不常见)
  • 非常数变量,包括参数:camelCased(keySelector
  • 常量:PascalCase(Int32.MaxValue
  • 枚举:PascalCase,非标志的单数和标志的复数(HttpStatusCodeBindingFlags
  • 属性:PascalCase,带有“Attribute”后缀(ThreadStaticAttribute

私人名称取决于您,但我倾向于遵循与其他所有内容相同的约定。不建议使用匈牙利表示法(以Win32的方式),尽管许多地方使用“m_”或“_”作为实例变量的前缀。

答案 1 :(得分:4)

Microsoft的.NET标准是将Pascal Case用于名称空间,公共成员和受保护成员(基本上对其他类可见的任何内容)。对于私人会员和本地变量,只需做一些更广泛的工作,只需做你和你的团队最熟悉的事情。

答案 2 :(得分:4)

Resharper的指南建议


  • 类型和命名空间 UpperCamelCase
  • 接口 IUpperCamelCase
  • 输入参数 TUpperCamelCase
  • 方法属性和事件 UpperCamelCase
  • 本地变量 lowerCamelCase
  • 本地常量 lowerCamelCase
  • 参数 lowerCamelCase
  • 字段(非私有) UpperCamelCase
  • 实例字段(私有) _lowerCamelCase
  • 静态字段(私有) _lowerCamelCase
  • 常量字段(非私有) UpperCamelCase
  • 常量字段(私有) UpperCamelCase
  • 静态只读字段(非私有) UpperCamelCase
  • 静态只读字段(私有) UpperCamelCase
  • 枚举成员 UpperCamelCase
  • 所有其他实体 UpperCamelCase

答案 3 :(得分:2)

不要低估遵循您正在进行的平台的命名约定的价值。

查看.NET Framework的参考资料,了解如何“适应”(http://msdn.microsoft.com/en-us/library/ms229335.aspx)的示例。

Jon Skeet为您提供了一个由Microsoft撰写的优秀文章的链接:http://msdn.microsoft.com/en-us/library/ms229042.aspx

您还可以使用独立的Microsoft FxCop(或代码分析,如果您有Team Edition)http://www.microsoft.com/downloads/details.aspx?FamilyID=9aeaa970-f281-4fb0-aba1-d59d7ed09772&DisplayLang=en来检查是否遵循了命名约定。它具有Microsoft约定的内置规则,这是您应该使用它们的另一个原因!

答案 4 :(得分:1)

Juval Lowy对Programming .NET Components进行了抨击,请看SO link

答案 5 :(得分:1)

我看看Baldwin,Gray和&amp ;;这本名为“Elements of C# Style”的小书。 Misfeldt。蓝皮书涵盖了命名约定,以及创建一致,干净,可读代码的许多其他方面。