Resharper无法识别列表中的缩写词

时间:2012-03-09 14:51:41

标签: c# resharper resharper-6.0

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

谢谢, 马克史密斯

3 个答案:

答案 0 :(得分:4)

在回答您的第一个问题时,我猜R#正试图符合微软C# conventions的首字母缩略词:

缩略语的资本化规则

将两个字符缩写词的两个字符大写,除了驼峰标识符的第一个单词。

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

请仅使用三个或更多字符的缩写词的第一个字符大写,除了驼峰标识符的第一个单词。

名为XmlWriter的类是用作Pascal标识符的第一个单词的长首字母缩写的示例。名为htmlReader的参数是用作驼峰标识符的第一个单词的长首字母缩写的示例。

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

  1. 转到 ReSharper>选项>代码编辑> C#> C#命名样式
  2. 选择本地变量,然后点击编辑
  3. 编辑规则设置对话框中,您默认看到的是一条规则 lowerCamelCase 。你可以把它改成另一种风格。
  4. 您需要做的是通过单击添加添加另一个命名规则并设置名称前缀(在您的情况下为RECD)和样式为 UpperCamelCase 。如果你只添加前缀,ReSharper将保持婊子(并提供一些有趣的重命名建议)因为你也拼写“左”而不是“左”。
  5. 如果您有其他类似的缩写,则应为每个缩写添加一个额外的局部变量命名规则(已知缩写的完整列表可在 C#命名样式&gt;高级设置&gt;缩写为纯文本< / em>。)这不是很方便,但并不是你有一个简单的命名标准)

    希望这有帮助。