1

根据 StyleCop 对常量的命名约定是 Pascal。

例如

private const double InchToMm= 2.54;

首字母缩写词的命名约定怎么样?

private const int Dpi = 96;

或者

private const int DPI = 96;
4

3 回答 3

5

微软的框架设计指南说:

PascalCasing 约定,用于除参数名称之外的所有标识符,将每个单词的第一个字符(包括长度超过两个字母的首字母缩写词)大写,如以下示例所示:

PropertyDescriptor

HtmlTag

对于两个字母都大写的双字母首字母缩略词有一种特殊情况,如以下标识符所示:

IOStream

仅用于参数名称的 camelCasing 约定将除第一个单词之外的每个单词的第一个字符大写,如以下示例所示。如示例还所示,以驼峰式标识符开头的双字母首字母缩写词都是小写:

propertyDescriptor

ioStream

htmlTag

但是,这些是指导方针和惯例,而不是法律。如果您想采用另一种约定,请使用它。但后来总是和永远不会混淆。

于 2015-12-09T14:36:50.337 回答
2

如果你走自己的路,这有点主观,但希望理由不是。如果一致性是您的主要风格目标,UpperCamelCase我发现团队一致遵循的最简单标准是. 我并不是说这是我最喜欢的或最易读的或类似的东西。Dpi

我的意思是,它是始终适用于不同团队的最简单的标准,甚至在你使用这个约定的这些年里你自己也适用。原因是它相当机器人化,几乎不需要思考。这样做的方法是问自己如何用下划线约定来写。你会这样写吗?

d_p_i

...如果是这样,您将由下划线分隔的每组字符中的第一个转换为大写。这会产生DPI. 但可能几乎每个人都会在下划线约定中这样写:

dpi

......所以从下划线到的机器人,明确的翻译UpperCamelCase成为Dpi。如果我们有同样的事情:

renderer_gl

...下划线的机器人,明确的翻译将是RendererGl.

现在这样做的好处并不一定是它漂亮或最接近人类的读写方式。就是这样,只要您可以确定如何在下划线中编写标识符(大多数人都会这样做),那么即使是机器人也可以将其转换为UpperCamelCaselowerCamelCase没有任何歧义。

因此,如果您的团队中强烈的审美是一致性,并且有一个约定,两个不同的人不会被诱惑使用不同的外壳,这可能是实现它的最简单方法。在我们的案例中,一致性是首要目标,因为我们提供了一个软件开发工具包,并且我们不希望我们的 API 不一致。CamelCase为此,它帮助建立了一种无需经过深思熟虑或涉及任何形式的歧义的方式来选择如何使用它。

对于其他约定,您通常会发现很多缩写/首字母缩略词的特殊情况。“如果是常见的首字母缩写词,则将其视为单词。如果不是,则将其视为首字母缩写词(全部大写)。如果长度为 2 个字母,则将其视为首字母缩写词。如果长度为 3 个以上字母,则将其视为像一个单词。如果结尾有 L 或 M,则将其视为单词,否则将其视为首字母缩略词,除非它后面有数字或前面有专有名词。如果看起来不好,则另作他法。 " 大脑在这里会变得疯狂,而团队在能够始终如一地应用这些标准方面可能会失败。

当然,一致性可能不是你最强的目标,但如果是的话,我会建议这个约定。

于 2015-12-12T13:27:30.550 回答
1

我可以在常量上找到的唯一 StyleCop 规则是SA1303。它指出:

常量 C# 字段的名称必须以大写字母开头。

因此,要么DpiDPI将符合该规则。

微软说你应该帕斯卡案例。在我看来,常量应该全部大写,所以我会选择DPI. MicrosoftXml在命名空间名称中使用,也应该是 Pascal 大小写,因此Dpi最符合 Microsoft 自己使用的命名约定。

于 2015-12-09T14:25:42.907 回答