常量首字母缩略词的命名约定
Naming Convention for constant Acronyms
根据 StyleCop,常量的命名约定是 Pascal。
例如
private const double InchToMm= 2.54;
首字母缩写词的命名规则如何?
private const int Dpi = 96;
或
private const int DPI = 96;
我能找到的关于常量的唯一 StyleCop 规则是 SA1303。它指出:
The name of a constant C# field must begin with an upper-case letter.
所以 Dpi
或 DPI
都符合该规则。
Microsoft says 你应该用 Pascal 大小写。在我看来常量应该全部大写,所以我会选择 DPI
。 Microsoft 在命名空间名称中使用 Xml
,这也应该是 Pascal 大小写,因此 Dpi
最符合 Microsoft 自己使用的命名约定。
Microsoft 的 Framework Design Guidelines 说:
The PascalCasing convention, used for all identifiers except parameter
names, capitalizes the first character of each word (including
acronyms over two letters in length), as shown in the following
examples:
PropertyDescriptor
HtmlTag
A special case is made for two-letter acronyms in which both letters
are capitalized, as shown in the following identifier:
IOStream
The camelCasing convention, used only for parameter names, capitalizes
the first character of each word except the first word, as shown in
the following examples. As the examples also shows, two-letter
acronyms that begin a camel-cased identifier are both lowercase:
propertyDescriptor
ioStream
htmlTag
但是,这些只是指南和惯例,而不是法律。如果您想采用其他约定,请使用它。但是永远不会混淆。
如果你走自己的路,这有点主观,但希望理由不是。如果 一致性 是您的主要文体目标,我发现团队 始终如一地 遵循的最简单 UpperCamelCase
标准是 Dpi
.我并不是说那是我最喜欢的或最易读的或类似的东西。
我是说这是最简单的标准,可以始终如一地适用于不同的团队,甚至在您使用此约定的这些年中您自己也是如此。这样做的原因是它相当机器人化,几乎不需要思考。这样做的方法是问问自己如何用下划线约定来写这个。你会这样写吗?
d_p_i
... 如果是,则将下划线分隔的每组字符中的第一个字符翻译成大写字母。这会产生 DPI
。但可能几乎每个人都会在下划线约定中这样写:
dpi
... 所以从下划线到 UpperCamelCase
的机械化、明确的翻译变成了 Dpi
。如果我们有同样的事情:
renderer_gl
...下划线的机器人、明确的翻译将是 RendererGl
。
现在这样做的好处并不一定是它非常漂亮或最接近人类的读写方式。只是,只要你能解决如何用下划线写标识符(大多数人一贯这样做),那么即使是机器人也可以将它转换为 UpperCamelCase
或 lowerCamelCase
而不会产生任何歧义。
因此,如果您的团队中强烈的审美观是一致性,并且有一个约定,两个不同的人不会被诱惑使用不同的大小写,这可能是实现它的最简单方法。在我们的例子中,一致性是首要目标,因为我们提供了一个软件开发工具包,我们不希望我们的 API 不一致。为此,它帮助建立了一种选择如何使用 CamelCase
的简单方法,不需要很多思考或涉及任何形式的歧义。
对于其他约定,通常您会发现 abbreviations/acronyms 有很多特殊情况。 "If it's a common acronym, treat it like a word. If it's not, treat it like an acronym (all caps). If it's 2 letters in length, treat it like an acronym. If it's 3+ letters in length, treat it like a word. If there's an L or M at the end, treat it like a word, otherwise an acronym unless it's followed by a number or preceded by a proper noun. If it doesn't look good, do it the other way." 大脑可能会在这里发疯,团队可能会因为能够始终如一地应用这些标准而失败。
当然,一致性可能不是你最强烈的目标,但如果是,我会建议这个约定。
根据 StyleCop,常量的命名约定是 Pascal。
例如
private const double InchToMm= 2.54;
首字母缩写词的命名规则如何?
private const int Dpi = 96;
或
private const int DPI = 96;
我能找到的关于常量的唯一 StyleCop 规则是 SA1303。它指出:
The name of a constant C# field must begin with an upper-case letter.
所以 Dpi
或 DPI
都符合该规则。
Microsoft says 你应该用 Pascal 大小写。在我看来常量应该全部大写,所以我会选择 DPI
。 Microsoft 在命名空间名称中使用 Xml
,这也应该是 Pascal 大小写,因此 Dpi
最符合 Microsoft 自己使用的命名约定。
Microsoft 的 Framework Design Guidelines 说:
The PascalCasing convention, used for all identifiers except parameter names, capitalizes the first character of each word (including acronyms over two letters in length), as shown in the following examples:
PropertyDescriptor
HtmlTag
A special case is made for two-letter acronyms in which both letters are capitalized, as shown in the following identifier:
IOStream
The camelCasing convention, used only for parameter names, capitalizes the first character of each word except the first word, as shown in the following examples. As the examples also shows, two-letter acronyms that begin a camel-cased identifier are both lowercase:
propertyDescriptor
ioStream
htmlTag
但是,这些只是指南和惯例,而不是法律。如果您想采用其他约定,请使用它。但是永远不会混淆。
如果你走自己的路,这有点主观,但希望理由不是。如果 一致性 是您的主要文体目标,我发现团队 始终如一地 遵循的最简单 UpperCamelCase
标准是 Dpi
.我并不是说那是我最喜欢的或最易读的或类似的东西。
我是说这是最简单的标准,可以始终如一地适用于不同的团队,甚至在您使用此约定的这些年中您自己也是如此。这样做的原因是它相当机器人化,几乎不需要思考。这样做的方法是问问自己如何用下划线约定来写这个。你会这样写吗?
d_p_i
... 如果是,则将下划线分隔的每组字符中的第一个字符翻译成大写字母。这会产生 DPI
。但可能几乎每个人都会在下划线约定中这样写:
dpi
... 所以从下划线到 UpperCamelCase
的机械化、明确的翻译变成了 Dpi
。如果我们有同样的事情:
renderer_gl
...下划线的机器人、明确的翻译将是 RendererGl
。
现在这样做的好处并不一定是它非常漂亮或最接近人类的读写方式。只是,只要你能解决如何用下划线写标识符(大多数人一贯这样做),那么即使是机器人也可以将它转换为 UpperCamelCase
或 lowerCamelCase
而不会产生任何歧义。
因此,如果您的团队中强烈的审美观是一致性,并且有一个约定,两个不同的人不会被诱惑使用不同的大小写,这可能是实现它的最简单方法。在我们的例子中,一致性是首要目标,因为我们提供了一个软件开发工具包,我们不希望我们的 API 不一致。为此,它帮助建立了一种选择如何使用 CamelCase
的简单方法,不需要很多思考或涉及任何形式的歧义。
对于其他约定,通常您会发现 abbreviations/acronyms 有很多特殊情况。 "If it's a common acronym, treat it like a word. If it's not, treat it like an acronym (all caps). If it's 2 letters in length, treat it like an acronym. If it's 3+ letters in length, treat it like a word. If there's an L or M at the end, treat it like a word, otherwise an acronym unless it's followed by a number or preceded by a proper noun. If it doesn't look good, do it the other way." 大脑可能会在这里发疯,团队可能会因为能够始终如一地应用这些标准而失败。
当然,一致性可能不是你最强烈的目标,但如果是,我会建议这个约定。