【发布时间】:2011-03-27 10:54:34
【问题描述】:
我正在用 C# 重构一个库,发现很多大写常量:
INTERVAL, TIME, SECONDS.
我认为这是一种不必要的,我个人更喜欢用骆驼案声明一切。是否存在关于更好方法的确切定义?
【问题讨论】:
标签: c# coding-style constants
我正在用 C# 重构一个库,发现很多大写常量:
INTERVAL, TIME, SECONDS.
我认为这是一种不必要的,我个人更喜欢用骆驼案声明一切。是否存在关于更好方法的确切定义?
【问题讨论】:
标签: c# coding-style constants
最终情况不会产生任何影响(除非它与类型/关键字/等冲突)。所以真的一致性才是主要的。
Capitalization Conventions 不区分常量和其他成员 - 但这些只是指南。所以它会是 pascal-case。
【讨论】:
全大写常量是一种常见的约定……
...但是约定就是这样,而且是任意的。如果您正在为自己编写代码,那么没有令人信服的理由不选择您自己的代码。如果您与其他开发人员合作,则必须就命名约定达成一致。
如果您编写的内容会被团队以外的其他人使用,您最好坚持使用最常见和最容易识别的命名约定以避免混淆。
最后,一致性才是最重要的。
【讨论】:
这完全取决于您的团队/团队在定义编码指南时选择的标准。
如果其他人都使用 ALL_UPPER_CASE,那么你应该排队。
就我个人而言,我更喜欢对常量使用大写字母,以便通过查看它们就知道它们是什么。
【讨论】:
MSDN page on constants 建议应将常量视为静态字段成员。在这种情况下,Captialization Conventions 表明 PascalCasing 是合适的。
如果您的常量是公共 API 的一部分,我建议您遵循此约定。
但是,如果常量只是一个私有成员,您可以使用任何您希望的约定。 MSDN,在这种情况下,实际上有lower case constant members in the Constant help page,例如。
【讨论】:
System.Int32.MaxValue)看到这一点。
Microsoft's recommendations 没有提及全大写名称。它们没有明确指定 constants 的大小写约定,但它们有一个用于枚举值 (PascalCase) 和只读静态字段 (还有 PascalCase) 的大小写约定。所以根据微软的指导方针,PascalCase 可能是你最好的选择。
【讨论】:
我通常将 PascalCase 用于公共常量,将 camelCase 用于私有常量。例外情况是常量是从较旧的 C/C++ 库或类似库(例如与 P/Invoke 一起使用的库)导入的。 - 我保留它们在原始库中的原样。
【讨论】:
这是所有偏好,但我相信大写是对#define 的回归,因为据我所知,const 与它相差不远。
更具体地说,我相信大写 const 只是另一种描述方法,您在方法中看到所有大写的东西并且您知道它是一个 const,如果它是驼峰式大小写它是本地的,带有 _ 的驼峰式大小写是成员私有,并且帕斯卡案例是会员公众。
虽然这只是一些人喜欢的一致性标准之一,但它确实是优先的,尽管我认为原因正如我所说,只是为了让你在看到所有大写字母时明白这是一个常量。
【讨论】: