在C#中声明const的更优雅方式是什么?

时间:2010-08-09 18:20:10

标签: c# coding-style const

  

可能重复:
  C# naming convention for constants?

我正在用C#重构一个库,我发现了很多大写常量:

INTERVAL, TIME, SECONDS.

我认为这是一种不必要的,我个人更喜欢用骆驼案声明一切。关于更好的方法存在一些确切的定义?

7 个答案:

答案 0 :(得分:8)

最终情况不会有任何区别(除非它与类型/关键字/等碰撞)。所以一致性是主要的事情。

Capitalization Conventions不区分常量和其他成员 - 但这些只是指南。所以它会是 pascal-case

答案 1 :(得分:4)

全封闭常数是一种常见的约定......

......但是一个惯例只是那个,而且是任意的。如果您正在为自己编写代码,则没有令人信服的理由不选择自己的代码。如果您与其他开发人员合作,则必须同意命名约定。

如果您正在撰写将由团队之外的其他人使用的内容,那么您最好坚持使用最常见且可识别的命名约定以避免混淆。

最后,一致性是最重要的。

答案 2 :(得分:3)

MSDN page on constants表明常量应该像静态字段成员一样对待。在这种情况下,Captialization Conventions表明PascalCasing是合适的。

如果您的常量是公共API的一部分,我建议遵循此约定。

但是,如果常量只是私有成员,则可以使用任何您希望的约定。在这种情况下,MSDN实际上有lower case constant members in the Constant help page,例如。

答案 3 :(得分:2)

完全符合您的团队/团队在定义编码指南时所选择的标准。

如果其他人都使用ALL_UPPER_CASE,那么你应该排队。

就个人而言,我更喜欢使用大写字母来表示常量,所以我只是通过查看它们就知道它们是什么。

答案 4 :(得分:1)

Microsoft's recommendations没有提及全大写的名字。它们没有明确指定常量的大小写约定,但它们有一个用于枚举值(PascalCase)和只读静态字段(也是PascalCase)。因此,根据Microsoft的指南,PascalCase可能是您的最佳选择。

答案 5 :(得分:1)

我通常将PascalCase用于公共常量,将camelCase用于私有常量。例外情况是从旧的C / C ++库或类似库(例如与P / Invoke一起使用的那些)导入常量时。 - 我把它们保存在原始库中。

答案 6 :(得分:0)

这是所有的偏好,但大写是我相信回到#define,因为const与我的理解并不相差甚远。

更具体地说,我认为大写const只是另一种描述方法,你在一个方法中看到所有大写的东西,你知道它是一个const,如果它是驼峰的情况下它是本地的,驼峰的情况是_是成员私有的, pascal案例是成员公开。

虽然这只是一些人喜欢的一致性标准,但它确实是优先考虑的,尽管我认为原因正如我所说的那样,只是当你看到所有的大写时你会明白它是一个常量。