我最近将我的项目从 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/