ReSharper在成员"EntityID"中抱怨大写"ID"

bit*_*onk 24 c# resharper naming-conventions framework-design

我在一个类中有一个属性"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).

Tim*_*oyd 44

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


Luk*_*keH 22

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

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

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

所以似乎ReSharper在这种情况下是正确的Id.

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

  • @bitbonk - LukeH是对的; 正确的大小写是"Id"而不是"ID".如果你想说服自己,你只需要查看基类库,你会发现`Id`几乎无处不在,除了少数情况下通过网络. (6认同)
  • @bitbonk:答案是**是**,因为`Id`是*缩写*.(但请注意,因为ReSharper还建议两个字符*首字母缩略词* - 例如,`DB` - 也是pascal-cased,这不是指南推荐的.) (2认同)

Dea*_*ing 9

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

根据需要添加其他后缀.

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


Łuk*_*.pl 5

那么"在缩写列表中添加'ID'怎么样?"