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

时间:2010-07-28 08:58:05

标签: c# naming-conventions resharper framework-design

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

  

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

但恕我直言根据Design Guidelines for Class Library Developers中的命名惯例。 'EntityID'应该非常好:

  
      
  • 请勿使用计算中通常不接受的首字母缩略词   字段。
  •   
  • 在适当的地方,使用众所周知的首字母缩略词来替换冗长的短语   名。例如,使用UI for User   用于在线的接口和OLAP   分析处理。
  •   
  • 使用首字母缩略词时,请使用Pascal case或camel case作为首字母缩略词   两个字符长。例如,使用   HtmlButton或htmlButton。但是,你   应该把首字母缩略词大写   仅由两个字符组成,例如   作为System.IO而不是System.Io。
  •   
  • 请勿在标识符或参数名称中使用缩写。如果你   必须使用缩写,使用驼峰案例   用于包含更多的缩写   超过两个字符,即使这样   与标准缩写相矛盾   
  • 一词   

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

  

将两个字符缩略语的两个字符大写,除了   骆驼标识符的第一个字。   名为DBRate的属性是使用的简短首字母缩写词(DB)的示例   作为帕斯卡尔的第一个词   标识符。一个名为的参数   ioChannel是一个简短的例子   首字母缩写词(IO)用作第一个词   一个骆驼标识符。

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

4 个答案:

答案 0 :(得分:43)

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

答案 1 :(得分:21)

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

latest version of the guidelines有这样说:

  

可以使用的两个缩写   标识符为IDOK。在   他们应该使用Pascal标识符   显示为IdOk。如果用作   骆驼套的第一个字   标识符,它们应显示为id   和ok分别。

Id的情况下,似乎ReSharper是正确的。

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

答案 2 :(得分:8)

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

根据需要添加其他后缀。

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

答案 3 :(得分:5)

如何将“ID”添加到缩写列表“??