ReSharper在成员“EntityID”中抱怨大写“ID”

我在一个类中有一个属性“EntityID”。 Resharper(5.1)说

名称“EntityID”与规则“方法,属性和事件”不匹配。 建议的名称是’EntityId’。

但恕我直言,根据类库开发人员设计指南中的命名惯例。 ‘EntityID’应该非常好:

  • 不要使用计算领域通常不接受的首字母缩略词。
  • 在适当的地方,使用众所周知的首字母缩略词来替换冗长的短语名称。 例如,使用UI作为用户界面,使用OLAP进行在线分析处理。
  • 使用首字母缩略词时,请使用Pascal case或camel case作为长度超过两个字符的首字母缩略词。 例如,使用HtmlButton或htmlButton。 但是,您应该将仅包含两个字符的首字母缩写词大写,例如System.IO而不是System.Io。
  • 不要在标识符或参数名称中使用缩写。 如果必须使用缩写,请将camel case用于包含两个以上字符的缩写,即使这与单词的标准缩写相矛盾

*更新:*指南的最新版本还说:

除了驼峰标识符的第一个单词外,请将两个字符缩写词的两个字符大写。 名为DBRate的属性是用作Pascal标识符的第一个单词的简短首字母缩写词(DB)的示例。 名为ioChannel的参数是用作驼峰标识符的第一个单词的简短首字母缩写词(IO)的示例。

我是否正确理解指南? 如果是这样,我怎么能让ReSharper接受“EntityID”(众所周知的两个字母的缩写),但拒绝“HTMLReader”(它应该是HtmlReader)。

您是否希望坚持框架设计指南的建议,或者您是否想要使用大写ID

该指南的最新版本有这样的说法:

可以在标识符中使用的两个缩写是IDOK 。 在Pascal标识的标识符中,它们应显示为Id ,然后显示。 如果用作驼峰标识符中的第一个单词,它们应分别显示为idok

所以似乎ReSharper在Id的情况下是正确的。

出于兴趣,ReSharper还建议两个字符的首字母缩略词遵循相同的套管规则。 这与指南不一致: “除了骆驼标识符的第一个单词之外,请将两个字符缩写词的两个字符大写。”

如果您希望ReSharper将“ID”作为“Identity”的有效缩写,则只需选择Property,按“Alt-Enter”,然后从ReSharper上下文菜单中选择“Add’ID’到缩写列表”。

最简单的解决方案是进入ReSharper选项,在“C#命名样式”选项卡下,确保选中“覆盖常用设置”,然后双击“方法,属性和事件”。 单击“添加”以添加新的,并将其设置为“UpperCamelCase”,其名称后缀为“ID”。

根据需要添加其他后缀。

您也可以使用“C#命名样式”页面上的“高级设置…”按钮来执行此操作,这样可以提供更多灵活性,但我不会为此烦恼…

那么“在缩写列表中添加’ID’怎么样?”