visual-studio-2010 - 我应该抑制 CA2204 : Literals should be spelled correctly?

标签 visual-studio-2010 code-analysis fxcop conventions

我最近将我的项目从 Visual Studio 2008 升级到 Visual Studio 2010。

通过启用代码分析,我收到了很多导致规则 CA2204 的警告:文字应该拼写正确。

编辑 :

假设我有一个名为 GetResult() 的方法,并且出于某种原因,我想在其中抛出异常。我希望异常(exception)说 "GetResult() has failed for some reason" .这会给我警告,因为 GetResult 不是一个词。我不会收到有关方法名称的警告 GetResult() ,只有当我把它放在一个字符串中。这是因为 Get 和 Result 是合法的词。

我不相信写作 GetResult() has failed for some reason是解决方案。

编辑 : 在 MSDN它说:

This rule parses the literal string into words, tokenizing compound words, and checks the spelling of each word/token.



那是不是意味着 GetResult 应该被检查为两个词:“Get”和“Result”?

我应该抑制 CA2204 吗?

最佳答案

"Can't initialize MyClass"对于开发人员来说,将其引入代码并不是一个好消息。它很少有助于调试,而且如果它曾经被显示过,它只会让最终用户感到困惑。

一般来说,我会说不要压制消息,因为拼写错误会使人看起来比实际情况更愚蠢,而且这不是您想通过应用程序传达的消息。

在这个特定的例子中,它实际上是一个糟糕的错误消息的警告——要么告诉用户如何纠正它,自动纠正它,要么在你的错误日志中包含它没有初始化的实际原因。

编辑:包括 OP 的编辑
您可以从该警告中得出的结论是,您不应将代码详细信息作为错误消息的一部分显示出来(主要是因为当您记录异常时,它们将包含在调用堆栈中)。
GetResult() has failed for some reason假设“某种原因”是权限。该消息可以是:

You don't have permission to view these results.



没有必要提及失败的具体方法,因为可以自动记录堆栈跟踪。

关于visual-studio-2010 - 我应该抑制 CA2204 : Literals should be spelled correctly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2858193/

相关文章:

c# - 如果使用了特定的枚举值,如何生成警告

code-analysis - 警告未使用的 using 语句的静态分析规则是什么?

asp.net-mvc-3 - CA2135与CA2122之争

c++ - 两个几乎相同的循环中的性能差异

html - 在 Visual Studio 中格式化整个文档。 P 和 H1 标签被分成多行

tfs - 为什么代码分析不适用于 TFS 2012 构建?

.net - 是否有一个 .Net StyleCop 规则会警告锁(this)、锁(typeof、lock(<string obj> 等)?

c# - 使用 C# Intellisense Comments 的最佳实践

c# - Visual Studio 2010 解决方案文件夹中的未知 Index.dat 和 Storage.dat 文件

c - 在 C 中, "format argument can be an expression too"是什么意思?