VS.NET 2005的代码分析工具

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

&Q E-w/k'Zz0VS.NET 2005的代码分析工具51Testing软件测试网r9U;Wm*I*bi

GMV[*v s^$D0陈能技51Testing软件测试网R!oLl5A2~g I
2007-10-1051Testing软件测试网c-hz2wiJh,E,\

51Testing软件测试网 P#r5Cs]

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

7CC L|-b%v0

jx5[.X4iY0在项目属性中的代码分析页,选中启动代码分析即可使用代码分析功能。51Testing软件测试网vk*wDq t`%t

51Testing软件测试网 jR8liiMdk^l

!JK-@K)f4pk+J t051Testing软件测试网?:[.d0d pt

设置完后,代码分析会在程序编译后自动启动。当然,也可以在菜单直接选择对项目进行单独的代码分析。51Testing软件测试网0^*?Xu}X3YQ

,iz H'm P3Q)`0代码分析结果会在输出窗口显示,例如:51Testing软件测试网_8U,M @j!igb
D:\Test Code\FxCopTest\FxCopTest\Form1.cs(24): warning : CA1818 : Microsoft.Performance : 将Form1.button1_Click(Object, EventArgs):Void 更改为使用StringBuilder 而不使用String.Concat 或+=
w-d)e |Z%S0XJW!T \0代码分析完成-- 0 个错误,个警告

f&OJd^1b~}0

A~C#`~+{ {o0也会在错误列表窗口显示如下:

,?-G;}W:? K]o?'?0

,aJ$[9}+x7k0
]%w\e k"u:{0在这里,由于我的代码没有按标准规范使用字符串连接,所以提示违反了Performance分类标准的CA1818规则:不要在循环中串联字符串。而我的代码是这样写的:

g$t@.?+A2z(G+Y0tv051Testing软件测试网l:yJo2O

            string str = "";

a#D5CR*I UG!k0

1J3A']V!Nw6M0            for (int i = 0; i < 100; i++)
U|X ]a0qD:N4{0            {51Testing软件测试网J ig;|1]5F%lB5o F*L
                str += i.ToString();
ih4r;?gm&rjh0            }51Testing软件测试网klc(Sk$^5u

51Testing软件测试网7mb6n.d8i W(f

改成使用StringBuilder类的Append方法来连接字符串就可以修复这个对规则的违反,从而排除警告。

:UTP `@f;b7K&X051Testing软件测试网6D1X-k5a*Fn? B$\+I

如果对于某些规则不是很理解,或不知道如何修正,则可以访问MSDN联机帮助,查找规则ID即可,例如上面的就可以查找CA1818,帮助文档会列出这个规则的说明,怎样修复冲突,还可能列出正面和反面的例子说明。51Testing软件测试网6Rd:Jie&_0j2i


TAG: 代码分析 测试工具

 

评分:0

我来说两句

Open Toolbar