【问题标题】:ReSharper complains about uppercase "ID" in member "EntityID"ReSharper 抱怨成员“EntityID”中的大写“ID”
【发布时间】:2010-07-28 08:58:05
【问题描述】:

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

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

但是恕我直言,根据Design Guidelines for Class Library Developers 中的命名约定。 'EntityID' 应该没问题:

  • 不要使用在计算中不被普遍接受的首字母缩略词 字段。
  • 在适当的情况下,使用众所周知的首字母缩略词代替冗长的短语 名字。例如,为用户使用 UI 在线接口和OLAP 分析处理。
  • 使用首字母缩略词时,使用 Pascal 大小写或驼峰大小写的首字母缩写词超过 两个字符长。例如,使用 HtmlButton 或 htmlButton。然而,你 应该大写首字母缩略词 仅由两个字符组成,例如 作为 System.IO 而不是 System.Io。
  • 不要在标识符或参数名称中使用缩写。如果你 必须使用缩写,使用驼峰式 对于包含更多的缩写 超过两个字符,即使这个 与标准缩写相矛盾 词的含义

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

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

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 太棒了,我正在处理很多首字母缩略词(SMS、XML、SCAC、DOT、TLA),试图忽略所有警告变得很烦人。单击侧面的锐器钻石时,完全错过了此锐器选项。
  • 这似乎不会阻止 R# 在参数列表中抱怨 ID。
【解决方案2】:

您想坚持框架设计指南的建议,还是无论如何都想使用大写的ID

latest version of the guidelines 有话要说:

可以使用的两个缩写 in 标识符是IDOK。在 他们应该使用 Pascal 大小写的标识符 显示为 IdOk。如果用作 驼峰式的第一个词 标识符,它们应该显示为idok

所以看来 ReSharper 在Id 的情况下是正确的。

出于兴趣,ReSharper 还建议两个字符首字母缩写词遵循相同的大小写规则。这与准则不一致:“双字符首字母缩写词的两个字符都大写,除了驼峰式标识符的第一个单词。”

【讨论】:

  • 我想坚持框架设计指南的建议。所以应该是EntityId,entityId,idOfEntity?
  • @bitbonk:答案是,因为Id是一个缩写。 (但请注意,因为 ReSharper 还建议两个字符 acronyms - 例如,DB - 也是帕斯卡大小写,这不是指南建议的。)
  • @bitbonk - LukeH 是对的;正确的大写是Id 而不是ID。如果你想说服自己,你只需要浏览一下基类库,你会发现Id几乎无处不在,除了一些漏网的情况。
  • 在我看来,Db 是数据库的缩写(一个词)。 IO 是输入输出(两个词)的两个字母首字母缩写词来自维基百科:“首字母缩写词是由短语或单词中的初始组件形成的缩写。”所以我想很难区分缩写和首字母缩写词
  • @LukeH DB 实际上不是缩写,而不是首字母缩略词吗?如果我写英文,我会使用“数据库”而不是“数据库”,因此我认为 R# 是正确的。
【解决方案3】:

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

根据需要添加其他后缀。

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

【讨论】:

  • @bitbonk:不,你不是!由于 ID 和 OK 是 缩写,因此根据指南,它们应该分别为 IdOk。 ReSharper 在这点上是对的。 (但是,ReSharper 在涉及两个字符 acronyms 时是错误的(例如 DB)。根据指南,两个字符的首字母缩写词应该全部大写,但 ReSharper 建议它们是帕斯卡大小写也是。)
【解决方案4】:

“将'ID'添加到缩写列表”怎么样??

【讨论】:

    猜你喜欢
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    相关资源
    最近更新 更多