VS.NET 2005的代码分析工具

上一篇 / 下一篇  2007-10-10 14:36:17 / 个人分类:自动错误预防(AEP,Automated Error Prevention)

&W*[ _.f/qQ9F B6S0VS.NET 2005的代码分析工具

*`c9~,q#Fq051Testing软件测试网&p8Z9\;`d[ R8S8@R)C

陈能技51Testing软件测试网SHS)^$}!f
2007-10-10

h$KdT3t)h051Testing软件测试网D4XMat|-Z;d&mV

VS.NET 2005提供了一个静态代码分析的工具,可以用于分析所写的代码是否满足特定的.NET编码规则,规则包括了安全性、可靠性、可维护性、性能、命名等方面的编码标准。51Testing软件测试网9BS2u&x1O

;eE a&Ox{0在项目属性中的代码分析页,选中启动代码分析即可使用代码分析功能。

|6c E UH051Testing软件测试网So X4A m i3C W

1m$_$DFS [E/G051Testing软件测试网{_k"xY rZ p

设置完后,代码分析会在程序编译后自动启动。当然,也可以在菜单直接选择对项目进行单独的代码分析。

4@ diZ:Xob%lpD051Testing软件测试网7p(\)c;W`b[

代码分析结果会在输出窗口显示,例如:51Testing软件测试网F^8]:f+\3t
D:\Test Code\FxCopTest\FxCopTest\Form1.cs(24): warning : CA1818 : Microsoft.Performance : 将Form1.button1_Click(Object, EventArgs):Void 更改为使用StringBuilder 而不使用String.Concat 或+=51Testing软件测试网Vq6z8@J7L*T` v2\Z
代码分析完成-- 0 个错误,个警告51Testing软件测试网5S,b8h,JFHi1f

51Testing软件测试网"q ?6~9T@tL(L

也会在错误列表窗口显示如下:

c"y:|I!l6I8D051Testing软件测试网RI~m _#U7O

51Testing软件测试网$mIyKh X`k K0H
在这里,由于我的代码没有按标准规范使用字符串连接,所以提示违反了Performance分类标准的CA1818规则:不要在循环中串联字符串。而我的代码是这样写的:

w P V9| KX5]%M:@051Testing软件测试网h6fTN3_x@

            string str = "";

W o{"U3lc;Tr ~g9u!`0

9vM2Re?XATC0            for (int i = 0; i < 100; i++)51Testing软件测试网6sZ'AO+X"mAB
            {51Testing软件测试网ZLhokTFUc2I8w5_
                str += i.ToString();51Testing软件测试网&v*iQ.V.?C
            }51Testing软件测试网 ZgL ^f z:B4x;`

51Testing软件测试网L$B$U Kr O%^ u;d}

改成使用StringBuilder类的Append方法来连接字符串就可以修复这个对规则的违反,从而排除警告。51Testing软件测试网t+}w8pQM7Nv/Qu+y

h;ich*c3B0如果对于某些规则不是很理解,或不知道如何修正,则可以访问MSDN联机帮助,查找规则ID即可,例如上面的就可以查找CA1818,帮助文档会列出这个规则的说明,怎样修复冲突,还可能列出正面和反面的例子说明。51Testing软件测试网$D$zf;WP^Y$u3YP'st?


TAG: 代码分析 测试工具

 

评分:0

我来说两句

Open Toolbar