c# - CA1309 是否仍然对针对 .NET 4.5.1 编译的源代码有效?

标签 c# visual-studio-2015 fxcop

当我们为我们的一个项目启用带有“Microsoft All Rules”规则集的超集的 fxcop 时,它也会启用 CA1309 并立即开始提示这样的构造:

if (translationItem.Description == "Description")

显示警告,例如:

enter image description here 查看 string 的引用源时 here ,它表明 operator == 使用 String.Equals,而 String.Equals 又使用 EqualsHelper。当调用 CA1309 提出的 Equals 重载时,会调用相同的 EqualsHelper。因此,== 运算符似乎已经使用了 Ordinal 比较。

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

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

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

附言我们确实打算在上述代码段中使用区分大小写的字符串比较。

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

最佳答案

答案不多,但根据评论中愤世嫉俗者的要求,an issue has been raised over at the roslyn github .该问题已解决并关闭,修复程序将与里程碑 15.3 一起发布.

关于c# - CA1309 是否仍然对针对 .NET 4.5.1 编译的源代码有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39246924/

相关文章:

.net - 与默认的托管二进制分析规则集相比,使用 Microsoft.CodeAnalysis.FxCopAnalyzers nuget 有什么优势?

c# - Selenium WebDriver(IE 驱动程序)无法找到包含 ID 子字符串的元素

vb.net - 在 .Net 中使用新的空条件运算符速记功能时分配默认值?

sass - 在运行 gulp-sass 时,如何找出我使用的 Sass 版本?

c# - C# 中的解析器 FxCop 结果 Xml 文件

c# - 根据 FXCop 的 CA1008 规则,枚举应具有默认值零。这适用于 C# 吗?

c# - 注册 asp :button click event handler

c# - 回收 Worker 进程对 WCF 服务的影响

c# - 在正则表达式中使用捷克字符

c# - MSBuild 中出现错误 CS0840,但 VS2015 中没有错误