在谈论每个规则时,StyleCop和Code Analysis之间的区别是什么?

时间:2012-01-25 16:14:39

标签: c# .net stylecop

您能否告诉我StyleCop和Code Analysis规则之间的区别是什么?它应该一起使用吗?

感谢。

3 个答案:

答案 0 :(得分:13)

样式警察基本上解析文件,寻找格式问题以及您可以认为是“整容”的其他事情。代码分析实际上构建了您的代码,并检查已编译的运行时IL,以了解它在运行时的行为方式以及标记潜在的运行时问题。

所以,它们是免费的,你可以一起使用它们。

答案 1 :(得分:8)

简短回答:

  • stylecop:将源代码作为输入,并检查潜在的代码样式问题。例如:using指令不按字母顺序排列......等等。
  • fxcop(现在代码分析):将已编译的程序集作为输入,并在执行时检查与可执行文件/ dll本身相关的潜在问题。例如:在您的班级中,您有IDisposable类型的成员未正确处理。

但是,这两个工具都有一些共同的规则,例如与公开公开类型的命名约定相关的规则。

无论如何,使用两者都是个好主意。

答案 2 :(得分:7)

FxCop会检查 所写的内容 。它适用于编译的程序集。

StyleCop检查 如何编写 。它适用于已解析的源文件,即使不尝试编译也是如此。

这导致了所有的差异。例如,FxCop无法检查缩进,因为它们在编译的程序集中不存在。并且StyleCop无法执行代码流检查,因​​为它不知道您的代码是如何被执行的。