前段时间做了一个用到一个微软的免费测试工具FxCop,使用后觉得还不错,能进行一些代码方面的自动测试,同时有帮助学习编码规范和提高代码执行效率,从而提高代码的整体质量.
这个工具能测试到的地方有: Design(设计),Globalization(全球化),Interoperability(互操作性), Naming(命名),Performance(性能规则),也可以自己加入规则进行测试;
工具还是很好用的,很快就上手了
有几点小技巧
1 可以自定义错误的规则,建议取消掉globalizationrules,securityrules等规则
2 点中问题的连接,后可以直接连接到有代码问题的代码上
3 可以看看breaking的Info注释,里面有比较好的解决方法
检查后修改的代码有
1 Class的命名规则
2 判断字符为空由
if (strStartValue.ToString() == "")
改为
if(strStartValue.Length() == 0))
3比较字符串的时候
dr["PrefixM"].ToString().ToLower() == "mm" 改用String.Compare(strPrefix, "yy", true) == 0的方法
4 删除掉方法中定义而未使用的参数
5 删除无效的赋值
5 DataReader中未关闭(其他程序中的)
6 提示删除程序中未使用到的方法
7 提示 catch 需要指定具体的Exception ,这样可以节约捕获Exception 时内存的使用
8 刪除多余的using 引用
遇到的问题有
1 有大量的Globalization 要求,但是平时是没有注意到的,虽然开发的程序要求支持多语言
strMonth = StartDateValue.Month.ToString();
这样都会提示需要多语言的支持
2 程序未有AssembliesShouldDeclareMinimumSecurity定义
需要做签名,但是这个一般是平时没有注意的
3 CLR编写的存储过程需要有out参数,但是也会提示出来,所以需要制定一套比较详细的规则
4 在循环中有string相加的地方都提示要用stringbuilder这个修改是比较麻烦的,除非能之前注意,
觉得比较好的资料可以参考
http://www.cnblogs.com/zhengyun_ustc/archive/2005/08/09/FxCop001.html
规则
http://www.cnblogs.com/Hedonister/articles/231878.html
FxCop的工具下载连接:
http://www.gotdotnet.com/team/fxcop/
定制FxCop规则示例:
http://www.iocblog.net/static/2007/414.html
FxCop添加规则如图
这个工具能测试到的地方有: Design(设计),Globalization(全球化),Interoperability(互操作性), Naming(命名),Performance(性能规则),也可以自己加入规则进行测试;
工具还是很好用的,很快就上手了
有几点小技巧
1 可以自定义错误的规则,建议取消掉globalizationrules,securityrules等规则
2 点中问题的连接,后可以直接连接到有代码问题的代码上
3 可以看看breaking的Info注释,里面有比较好的解决方法
检查后修改的代码有
1 Class的命名规则
2 判断字符为空由
if (strStartValue.ToString() == "")
改为
if(strStartValue.Length() == 0))
3比较字符串的时候
dr["PrefixM"].ToString().ToLower() == "mm" 改用String.Compare(strPrefix, "yy", true) == 0的方法
4 删除掉方法中定义而未使用的参数
5 删除无效的赋值
5 DataReader中未关闭(其他程序中的)
6 提示删除程序中未使用到的方法
7 提示 catch 需要指定具体的Exception ,这样可以节约捕获Exception 时内存的使用
8 刪除多余的using 引用
遇到的问题有
1 有大量的Globalization 要求,但是平时是没有注意到的,虽然开发的程序要求支持多语言
strMonth = StartDateValue.Month.ToString();
这样都会提示需要多语言的支持
2 程序未有AssembliesShouldDeclareMinimumSecurity定义
需要做签名,但是这个一般是平时没有注意的
3 CLR编写的存储过程需要有out参数,但是也会提示出来,所以需要制定一套比较详细的规则
4 在循环中有string相加的地方都提示要用stringbuilder这个修改是比较麻烦的,除非能之前注意,
觉得比较好的资料可以参考
http://www.cnblogs.com/zhengyun_ustc/archive/2005/08/09/FxCop001.html
规则
http://www.cnblogs.com/Hedonister/articles/231878.html
FxCop的工具下载连接:
http://www.gotdotnet.com/team/fxcop/
定制FxCop规则示例:
http://www.iocblog.net/static/2007/414.html
FxCop添加规则如图

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述