51Testing软件测试网B@(W-]|4ezVS.NET 2005的代码分析工具51Testing软件测试网'^.@W-lf3M
51Testing软件测试网9ndjml陈能技51Testing软件测试网$_%rL1Zk2A:[3_-uu(g
2007-10-1051Testing软件测试网_zYVEE"Bn _N
51Testing软件测试网5P2d4v*JW9TlVS.NET 2005提供了一个静态代码分析的工具,可以用于分析所写的代码是否满足特定的.NET编码规则,规则包括了安全性、可靠性、可维护性、性能、命名等方面的编码标准。51Testing软件测试网0[iw0_%e3g
q'}%n
51Testing软件测试网V;DK],xc在项目属性中的代码分析页,选中启动代码分析即可使用代码分析功能。
8b;G(nn3mB7aq0V&L8K!K X2|&?(|Nw7tV051Testing软件测试网 ^n
g4PsO&r(I
51Testing软件测试网QRK2_v~设置完后,代码分析会在程序编译后自动启动。当然,也可以在菜单直接选择对项目进行单独的代码分析。
s|:{{E(Ed{051Testing软件测试网$E0T$uv,X6Q代码分析结果会在输出窗口显示,例如:
6U
c*V2x,z0D:\Test Code\FxCopTest\FxCopTest\Form1.cs(24): warning : CA1818 : Microsoft.Performance : 将Form1.button1_Click(Object, EventArgs):Void 更改为使用StringBuilder 而不使用String.Concat 或+=
)]
J+dc{&S~%H^0代码分析完成-- 0 个错误,个警告51Testing软件测试网o4rxvS;S+KJ
D}'Ik7f0也会在错误列表窗口显示如下:
g^Bgxv2o0D#y,U:bR1Y%hMc0
~D.[&A'@5tI,]0在这里,由于我的代码没有按标准规范使用字符串连接,所以提示违反了Performance分类标准的CA1818规则:不要在循环中串联字符串。而我的代码是这样写的:51Testing软件测试网r
F8y#byt Gmt
4]+n?6IQ@~9_0 string str = "";51Testing软件测试网9E9gR`,[{
51Testing软件测试网eE$~3F"@3u?4y9S
o for (int i = 0; i < 100; i++)51Testing软件测试网^&`D%zX)E.V
{
;[K M'b~/n+W6]1y0 str += i.ToString();
,X]$O[;?il0}ug.]0 }51Testing软件测试网p7b
Hx\$ymW5g
51Testing软件测试网"~yN:_c改成使用StringBuilder类的Append方法来连接字符串就可以修复这个对规则的违反,从而排除警告。51Testing软件测试网@yr!y$oY!ACL
4B8?x.G@Se!ar0如果对于某些规则不是很理解,或不知道如何修正,则可以访问MSDN联机帮助,查找规则ID即可,例如上面的就可以查找CA1818,帮助文档会列出这个规则的说明,怎样修复冲突,还可能列出正面和反面的例子说明。51Testing软件测试网1n\*Bnp(mu
g:_