CA1309对于针对.NET 4.5.1编译的源是否仍然有效?

时间:2016-08-31 10:19:48

标签: c# visual-studio-2015 fxcop

当我们为其中一个项目启用了fxcop的“Microsoft All Rules”规则集的超集时,它还启用了CA1309并立即开始抱怨这样的结构:

if (translationItem.Description == "Description")

显示警告,例如:

enter image description here 在查看string here的参考来源时,它会显示operator ==使用String.Equals,后者又使用EqualsHelper。调用CA1309提出的Equals重载时,会调用相同的EqualsHelper。因此,似乎==运算符已经使用了序数比较。

所以我的问题是,我们应该将上面的代码段重构为:

if (string.Equals(translationItem.Description, "Description", StringComparison.Ordinal))

如果是这样,我们为什么要这样做?

P.S。我们确实打算在上面的代码片段中使用区分大小写的字符串比较。

P.S.2。我们使用Microsoft.CodeAnalysis.FxCopAnalyzers nuget包来即时运行代码分析。

1 个答案:

答案 0 :(得分:2)

根据评论中的愤世嫉俗的请求an issue has been raised over at the roslyn github,答案不是很多。该问题已得到解决和关闭,修复程序将以里程碑15.3发布。