c#的普遍接受的命名约定是什么? (函数,类,参数,局部变量,命名空间等)
答案 0 :(得分:63)
Microsoft有一个很棒的set of guidelines on class library design,包括section on naming。简而言之(括号中的例子):
WebRequest
)IDisposable
)ToUpper
)Length
)Click
)System.Collections
;虽然在一个部分中只有两个单词,但却不常见)keySelector
)Int32.MaxValue
)HttpStatusCode
,BindingFlags
)ThreadStaticAttribute
)私人名称取决于您,但我倾向于遵循与其他所有内容相同的约定。不建议使用匈牙利表示法(以Win32的方式),尽管许多地方使用“m_”或“_”作为实例变量的前缀。
答案 1 :(得分:4)
Microsoft的.NET标准是将Pascal Case用于名称空间,公共成员和受保护成员(基本上对其他类可见的任何内容)。对于私人会员和本地变量,只需做一些更广泛的工作,只需做你和你的团队最熟悉的事情。
答案 2 :(得分:4)
Resharper的指南建议
答案 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。蓝皮书涵盖了命名约定,以及创建一致,干净,可读代码的许多其他方面。