C# 什么';用C语言声明常量更优雅的方法是什么#

C# 什么';用C语言声明常量更优雅的方法是什么#,c#,coding-style,constants,C#,Coding Style,Constants,可能重复: 我正在用C#重构一个库,发现了很多大写常量: INTERVAL, TIME, SECONDS. 我认为这是一种不必要的,就我个人而言,我更喜欢用骆驼箱来申报一切。是否存在一些关于更好的方法的确切定义?最终,该案例不会产生任何影响(除非它与类型/关键字/etc冲突)。所以一致性才是最主要的 该函数不区分常量和其他成员,但这些只是准则。因此,这将是帕斯卡案例这一切都符合您的团队/团队在定义编码准则时选择的标准 如果其他所有人都使用ALL_大写字母,那么您应该排队 就我个人而言,我更喜

可能重复:

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

INTERVAL, TIME, SECONDS.

我认为这是一种不必要的,就我个人而言,我更喜欢用骆驼箱来申报一切。是否存在一些关于更好的方法的确切定义?

最终,该案例不会产生任何影响(除非它与类型/关键字/etc冲突)。所以一致性才是最主要的


该函数不区分常量和其他成员,但这些只是准则。因此,这将是帕斯卡案例

这一切都符合您的团队/团队在定义编码准则时选择的标准

如果其他所有人都使用ALL_大写字母,那么您应该排队


就我个人而言,我更喜欢用大写来表示常量,这样我就可以通过查看它们来知道它们是什么。

这都是我的偏好,但我认为大写是对定义的一种回溯,因为据我所知,常量与它相差不远

更具体地说,我相信大写常量只是另一种描述方法,在一个方法中,你可以在所有大写字母中看到一些东西,你知道它是一个常量,如果是驼峰大小写,它是本地的,驼峰大小写带有uu是成员私有的,而pascal大小写是成员公共的


虽然这只是一些人喜欢的一致性标准之一,但它确实是优先的,尽管我认为原因正如我所说的,只是为了让大家清楚地看到,当你看到所有的大写字母时,你知道这是一个常量。

所有大写字母常量都是一个常见的约定

……但公约正是如此,而且是武断的。如果您是为自己编写代码,那么没有令人信服的理由不选择自己的代码。如果您与其他开发人员合作,则必须就命名约定达成一致

如果您正在编写一些将被团队外的其他人使用的东西,那么最好坚持最常见和可识别的命名约定,以避免混淆

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

不要提及所有大写名称。它们没有明确指定常量的大小写约定,但它们有一个用于枚举值(
PascalCase
)和只读静态字段(也有
PascalCase
)的大小写约定。因此,根据微软的指导原则,
PascalCase
可能是您的最佳选择。

建议将常量视为静态字段成员。在这种情况下,建议使用PascalCasing

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


但是,如果常量只是一个私有成员,则可以使用任何约定。例如,在本例中,MSDN实际上具有。

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

的确如此。您可以通过CLR常量(如
System.Int32.MaxValue
)看到这一点。我这样做也是出于类似的原因。事实上,我更进一步,让局部变量以u开头,常量以u开头(双下划线)。通过这种方式,当你使用Intellisense时,a u可以让你找到所有的局部变量,同样也可以找到常数。从那以后我们已经走了很长一段路…我不想麻烦给你投否决票,但我认为默认的是.NET约定,它需要PascalCase。没错!但正如我将为我的团队重构库一样。我想要一些像@Marc建议的约定。C#约定是Pascal大小写。+1:当使用的常量应该“映射”到一些著名的C/C++代码(许多库使用大写约定)时,我也倾向于保持它们不变。。。为了清楚起见