如何在C#中使用帕斯卡命名法和驼峰命名法来处理短缩写?

8

一个简短的缩写,比如ID或DB,只有两个字符。

在使用帕斯卡命名法(用于属性或类名称)和驼峰命名法(用于输入参数、参数)时,如何命名这些缩写?

我知道每个公司都有自己的标准,但我正在寻找一个更普遍可接受的标准。

例如,在使用帕斯卡命名法时:

ProductID or ProductId?
IDOfProduct or IdOfProduct?
DBRate or DbRate?
RateOfDB or RateOfDb?

并且当使用驼峰命名法时:

productID or productId?
idOfProduct?
dbRate?
rateOfDb or rateOfDB?

我只是将缩写的第一个字母大写,因为我不仅需要按下Shift键一秒钟。这是个人偏好,在我看来。 - Leri
1
我不会将“ID”大写,无论约定如何,因为它是一个缩写词而不是首字母缩略词,但在微软的所有示例中,它与我持不同意见。 - millimoose
1
@millimoose ID是Identifier的缩写,这就是为什么它被视为缩略语的原因。缩略语不一定要由两个或更多单词创建,它可以只由一个单词创建。因此,每个缩写都是一个缩略语,但并非每个缩略语都是一个缩写:http://en.wikipedia.org/wiki/Acronym_and_initialism - The Light
1
@TheLight,你链接的文章开头是“首字母缩略词和首字母缩写都是缩写”,所以关系似乎是相反的。撇开单词定义的纠缠不清,从“identifier”形成“id”并不能证明需要将字母大写。只有当大写字母代表原始短语的组成部分时才这样做。 - millimoose
1
@The Light,例如:DB代表“数据库”,US代表“美国”。ID则可以表示“I Dentifier(标识符)”。当然,约定可以是“大写任何两个字母的缩写”(宽泛意义上),为了遵循一个可能更简单的规则而牺牲英语风格的一致性。这只是让我感到困扰的事情,仅此而已。 - millimoose
4个回答

5
根据MSDN(或Msdn :))的说法:
  • 对于两个字符缩写词,除了驼峰命名标识符的第一个单词外,都要大写两个字符。
  • 对于三个或更多字符的缩写词,除了驼峰命名标识符的第一个单词外,只需将第一个字符大写。
  • 无论缩写词长度如何,在驼峰命名标识符的开头不要大写任何字符。
更多信息请查看此处

2

没关系。

这真的是个人偏好。当一个简短的缩写词结束一个名称时,我会将两者都大写:

testDB

or

TestDB

当一个缩写词在名称开头时,我只大写第一个字母,因为这样更易读:

dbTest

or

DbTest

这一切都与可读性有关。无论你选择什么,都要保持一致。


0

大写ID的使用一直备受争议,至今仍无定论。

API设计指南中建议使用帕斯卡命名法表示Id,使用驼峰命名法表示id

https://learn.microsoft.com/dotnet/standard/design-guidelines/capitalization-conventions#capitalizing-compound-words-and-common-terms

在软件工程的上下文中,ID通常是标识符的缩写(与其他现实生活中的身份证明文件的ID首字母缩写不同)。因此,缩写应该遵循上面参考文献中Pascal和camel示例所示的大小写。然而,在编程上下文之外,仍处于计算机科学的上下文中,ID已被广泛使用并接受为缩写的事实大小写。 ID的大写甚至出现在了Microsoft的写作风格指南中:

https://learn.microsoft.com/style-guide/developer-content/reference-documentation

这恰好与两个字母缩写的帕斯卡命名法相匹配(但它并不是!)。因此,ID 回流到软件变量名称中,我们现在面临着缺乏一致性的现代混乱。

因此,尽管答案并不令人满意,但在帕斯卡命名法变量名称中,ID 的大小写确实取决于个人或项目偏好的问题。作为一个规则坚持者,我个人偏好于在代码中使用 Id,而在任何用户内容中使用 ID。但作为合作者,我支持团队能够达成共识的任何方式。


0

对于两个字符的缩写,除了驼峰式标识符的第一个单词外,都要将两个字符的大写字母化。

名称为DBRate的属性是以Pascal命名法命名的标识符的第一个单词使用短缩写(DB)的示例。名称为ioChannel的参数是以驼峰式命名法命名的标识符的第一个单词使用短缩写(IO)的示例。

请查看此链接。

http://msdn.microsoft.com/en-us/library/ms229043(v=vs.100).aspx


谢谢,但这个问题是Resharper无法理解缩写,所以它总是会抱怨。 - The Light

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接