为什么不';t常量在.Net中都是大写的吗?

为什么不';t常量在.Net中都是大写的吗?,.net,naming-conventions,constants,.net,Naming Conventions,Constants,Microsoft的.Net命名约定将常量放在Pascal大小写中。事实上,它明确告诉我们避免对常量使用所有大写: 你可能还需要资本化 保持兼容性的标识符 使用现有的非托管符号 schemes,其中所有的字符都是大写的 字符通常用于 枚举和常量值。在里面 一般来说,这些符号不应该是 在该部件外部可见 使用它们 从 所以我发现了一些关于这个主题的问题,像这样,但我找不到一个理由。所以,任何人都知道或有参考资料指出MS为什么选择这个惯例?这只是一个风格指南。编程语言已经开始推荐和推送格式约定,以便代

Microsoft的.Net命名约定将常量放在Pascal大小写中。事实上,它明确告诉我们避免对常量使用所有大写:

你可能还需要资本化 保持兼容性的标识符 使用现有的非托管符号 schemes,其中所有的字符都是大写的 字符通常用于 枚举和常量值。在里面 一般来说,这些符号不应该是 在该部件外部可见 使用它们


所以我发现了一些关于这个主题的问题,像这样,但我找不到一个理由。所以,任何人都知道或有参考资料指出MS为什么选择这个惯例?

这只是一个风格指南。编程语言已经开始推荐和推送格式约定,以便代码更具可读性


此外,被预处理器替换的符号值得特别注意——它们位于类型系统之外/之前,可能不是它们看起来的样子。常量只是常量,它们在编译或运行时不会更改。

因为全大写难看且难以读取,而且它是为预编译器设计的,而.NET甚至没有


此外,比尔·盖茨也希望如此,钱从来没有错。

微软没有遵循自己的规则,因为如果你反思一下c#4中的新System.Threading.Tasks类,你会发现很多CAP常量


这是一种时尚。我个人不介意。保持一致。

说所有的大写字母都很难看,因此不应该使用,这是近乎幼稚的逻辑。它来自于人们对他们不习惯的东西的抱怨

从Java到C,我开始在变量名和函数中的单词之间使用下划线。camelCase现在对我来说非常难看。但我仍然毫无怨言地使用camelCase for C++/Java,因为这是惯例

如果你不能使自己变得灵活,编程将成为一个苛刻的情妇。这是程序员的技能。

顺便说一句,EBCDIC是BCD(二进制编码十进制)的扩展版本,因此当然支持小写。60年代老式和早期的IBM机器(以及其他机器)不包括小写字母


(当然,像TRS-80这样的早期家用计算机也没有小写)

因为全大写很难阅读,它是为预编译器设计的,而.NET甚至没有。好的,我会把它正式地回答。经过几十年的C编程,我仍然使用所有的常量上限,因为在做认真的大编码时它更快、更容易地从智力建议中挑选出来。@ JNNC-DITTO。如果你想到历史,大写字母被用于C预处理器符号,所以当C++出现时,有<代码> const 这些符号是混合的。C++和java都来自C++,所以它们遵循C++约定。在一个注释中,我们不要忘记,<代码> const 是纯编译时间,而在运行时存在<代码>静态只读< /COD>,这就是为什么前者只允许作为C 4中的默认值。我有一个缺点要挑:命名标准和格式约定的目的不仅仅是为了使代码更可读,而且是为了使代码相互理解。NET推荐MixedCase作为方法而不是camelCase的理由并不充分,但是如果每个人都使用这两个选项中的同一个,我们可以阅读彼此的代码而不会感到困惑或烦恼。这就像是在街道的右边而不是左边开车:其实并不重要,只要每个人都选择同一边。是的,我同意,这是我的意图,让别人,而不仅仅是原作者“更具可读性”。如果人们不必不断地适应不同的风格,他们可以更快地理解代码的语义——特别是如果代码不是由他们编写的。这是C#和Python所采取的立场,值得注意的是,与允许C/C++等任何样式的灵活性相比,一致的样式(对每个人来说)实现了更大的收益;不过constexpr应该是这样。使用Resharper(甚至可能是VS),您可以为MyConstantValues键入MCVTNC,但这并不适用于所有大写字母。我认为缩写词在选择列表中不起作用,至少在VS 2008中不起作用。这是真的;如果你看一下.Net的内部结构,你也会发现大量的
m
用法,尽管这是邪恶的、被禁止的匈牙利符号。即使是.Net Core的最新源代码也包含几个定义的大写常量:不,这客观上是不好的:所有大写字母都很难阅读。我从全大写开始,因为这是EBCDIC下唯一的选项。既然我们有混合使用ASCII的区分大小写的语言,我们就有了更好的选择。@Steven:我不同意。Pizzach是对的——所有这些都只是文本,我还没有听说过一个统计数据证明它比小盒子更难阅读。我只需要做一个简短的注释,用下划线分隔单词需要在单词中多花费一个字符,所以我们有“更宽”或“更长”的代码,这是不好的。@Bruno:大写字母的形状比小写字母更相似,这就是它们更难阅读的原因。引用维基百科的话,“无论如何,所有大写字母中的长跨度拉丁字母文本更难阅读,因为小写字母中没有升序和降序,这有助于识别。”你是对的:EBCDIC确实支持小写。然而,据我记忆所及,我在IBM370上使用的穿孔卡片机没有提供任何输入小写字符的方法。