本地常量变量应该以大写还是小写字母开头?

3

在StyleCop和Resharper之间存在样式冲突。 Stylecop 1303规定const变量应以大写字母开头,我也同意。 Resharper对于类范围内的const声明表示OK,但是在使用局部常量(例如方法)时,Reshaper不批准并希望将所有内容都转换为camelCasing。

当然,禁用R#中的此规则没有问题,但是这个规则背后的原因是什么呢?有人有什么想法吗?

4个回答

2
如果您下载Resharper的Stylecop,则会附带一个Resharper设置文件,它将为您解决此问题。这也是让Resharper帮助您遵守Stylecop的良好方法: http://stylecopforresharper.codeplex.com/

@Marcel de Kleine 你导入了设置文件吗?当你安装插件时,它不会自动发生。无论如何,我仍然建议使用StyleCop设置-这就是你使用StyleCop的原因。如果你已经导入了该文件,可能值得在S4R上提交一个错误报告,让他们知道还有其他需要覆盖的内容 :) - Simon Steele
我已经导入了设置文件,但仍然存在冲突,所以我会按照你的建议去做,这样他们就可以解决这个问题。 - Marcel de Kleine
@Marcel de Kleine: 你只需要在 R#(ReSharper->Options->Languages->Common->NamingStyle->LocalConstants)中更改规则即可。我已经完成了这个操作。 - Dmitrii Lobanov
1
我不明白为什么这被标记为答案。它没有回答所提出的问题。 - FatAlbert

1

在这种情况下,我会坚持使用R#的解释(在本地范围内,所有内容应该是lowerCamelCase)。

这主要是一种习惯问题,因为通常我会从变量开始,然后在完成方法之后,如果相应的R#智能标签建议我这样做,我可能会将变量更改为常量。

但正如指出的,最重要的是团队之间保持一致...

Thomas


虽然我同意一致性很重要,但使用StyleCop意味着您选择遵循StyleCop规则。这意味着最好更改Resharper配置而不是禁用规则。 - Simon Steele
什么?“StyleCop规则”根本不存在。StyleCop只是一个可配置和可扩展的文本检查工具,预配置了微软规则。而且,你为什么认为StyleCop应该是“正确”的,而R#应该是“错误”的呢? - Thomas Weller
StyleCop中的许多代码格式决定都可以被视为是武断的。有些决定是有充分理由支持的,而有些则只是选一个风格坚持下去的情况。大多数规则不能进行配置,因此选择Resharper的默认值而不是StyleCop的意味着你将不再使用StyleCop检查代码是否一致。使用StyleCop的目的是确保代码看起来都一样,并避免“哪个更好”的争论。这并不是说StyleCop一定比Resharper更好,只是使用StyleCop更容易进行强制执行。 - Simon Steele

0

我认为StyleCope正在使用大小写来区分类和方法的作用域。


什么?这意味着所有类作用域字段也将是UpperCamelCase… - Thomas Weller
不要嘲笑我 - 我并没有制定规则。 - Polyfun
当然,你不是制定规则的人...但你仍然应该考虑它们;-) - Thomas Weller

0

我相信几乎每个人都有自己的想法,但这些想法很少是同步的。找到你喜欢的风格并坚持下去。Re#等建议只是参考。你和你的同事应该达成一致,这是最重要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接