5

我正在尝试清理 R# 6.1 为我的类生成的警告,而 ReSharper 报告的问题之一是我对变量的大小写不正确。例如,我有var RECDLeft = new RECD();,它建议我将其更改为,var recdLeft = new RECD()尽管它是列表中定义的首字母缩略词。我已手动将 RECD 首字母缩写词添加到首字母缩写词列表中,因为它没有要求我将其添加到快速修复菜单中。我注意到,如果我调用变量“var aRECDLeft”,它会正确识别首字母缩写词。在变量名的开头无法识别首字母缩略词是否有原因?除了将首字母缩写词移到第二个单词之外,还有没有办法让 R# 识别这种用法?

谢谢,马克史密斯

4

3 回答 3

4

在回答您的第一个问题时,我猜 R# 正在尝试符合 Microsoft 的C#首字母缩写词约定:

首字母缩略词的大小写规则

务必将双字符首字母缩写词的两个字符大写,但驼峰式标识符的第一个单词除外。

命名的属性DBRate是用作 Pascal 大小写标识符的第一个单词的短首字母缩写词 (DB) 的示例。命名参数ioChannel是用作驼峰式标识符的第一个单词的短首字母缩写词 (IO) 的示例。

除了驼峰式标识符的第一个单词之外,只有三个或更多字符的首字母缩写词的第一个字符大写。

一个名为的类XmlWriter是一个长首字母缩写词的例子,它被用作 Pascal 大小写标识符的第一个单词。命名参数htmlReader是用作驼峰式标识符的第一个单词的长首字母缩写词的示例。

不要在驼峰式标识符的开头将任何首字母缩略词的任何字符大写,无论其长度如何。

命名参数xmlStream是一个长首字母缩写词 (xml) 的示例,用作驼峰式标识符的第一个单词。命名参数dbServerName是一个缩写词 (db) 的示例,它用作驼峰式标识符的第一个单词。

于 2012-03-09T16:51:59.870 回答
2

我猜问题是尽管添加了首字母缩写词,但您仍然违反了变量名以小写开头的规则。您需要为变量名称添加一个特殊规则,允许它们以该首字母缩写词开头。这与在列表中添加首字母缩写词不同。

于 2012-03-09T17:09:50.793 回答
2

正如 siride 正确指出的那样,这是一种特殊的命名情况,需要为局部变量引入一个特殊的命名规则,除了您的默认规则外,还将检查该规则。这是你应该做的:

  1. 转到ReSharper > 选项 > 代码编辑 > C# > C# 命名样式
  2. 选择局部变量,然后单击编辑
  3. 在“编辑规则设置”对话框中,默认情况下您看到的是一个规则,即lowerCamelCase。不过,您可以将其更改为另一种样式。
  4. 您需要做的是通过单击添加添加另一个命名规则并将名称前缀(在您的情况下为 RECD)和样式设置为UpperCamelCase。如果您只添加前缀,ReSharper 将继续抱怨(并提供一些有趣的重命名建议),因为您还拼写“Left”而不是“left”。

如果您有其他类似的缩写,您应该为它们中的每一个添加一个额外的本地 var 命名规则(已知缩写的完整列表可在C# Naming Style > Advanced settings > Abbreviations as plain text中找到。)这不是很方便但也不是你有一个简单的命名标准)

希望这可以帮助。

于 2012-03-10T06:40:35.867 回答