我针对我创建的对象运行了VS 2008代码分析工具,并收到了以下建议......

  

警告147 CA1021:Microsoft.Design   :考虑一个没有的设计   要求'returnValue'出局   参数。

我发现“外出”参数相当有用,并没有意识到它们被认为是一种不受欢迎的设计实践。我想知道是否有人可以了解我收到此警告的原因?如果这是不好的做法?为什么?什么是好的做法?

我感谢任何建议。

有帮助吗?

解决方案

每个“代码分析”警告都有相关文档,您可以通过高亮显示警告并按 F1 来访问该文档。您也可以右键单击该项目以获得帮助。

在任何情况下,这里都是解释该特定警告的文档

我想说有一些情况下out参数仍然是一个不错的选择 - 特别是当谈到TryParse编码习惯用法时,因为它是如此完善的做事方式,大多数人都应该理解它

但是,在一般情况下,对于多个返回值,有更好的,更面向对象的解决方案。

其他提示

我曾经在自己的项目上运行自己的代码分析。此外,我确实得到了许多富有洞察力的建议,我非常简短地将其关闭了。许多建议具有宗教性质,你可以这样或那样做,这是一种风格而非坏习惯。

根据你的情况。如果您只有一个返回参数,则将其从函数返回。

如果您还有一个占用返回地点的返回代码,请考虑使用例外来通知调用者代码操作错误。

如果要返回的参数很多,彼此密切相关,请创建一个类/结构将它们组合在一起并将其作为包返回。

在我看来,许多代码分析警告与编写第三方将使用的API代码相关。带有'out'参数的规则是一个经典案例:不使用它们的部分原因是因为许多其他程序员不会知道它们。

如果它们与您编写的内容不匹配,请关闭不适合您的代码分析规则。 就个人而言,我倾向于关闭命名,可移植性和互操作性规则,因为它们与我编写的代码类型无关。

我在大多数项目中都关闭了这个特定的警告。 因为,我知道,当我使用out参数时,我有充分的理由这样做,因为我试图完全避免它们。

我可以想象,在与项目中的多个人合作时,如果您想要进行一些代码审查,您可能希望启用此警告...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top