一共有三种方法:用VS自带的代码度量值、正则表达式、严格版的正则表达式。
VS自带
以VS2015为例,菜单栏的“分析——>为解决方案计算代码度量值”,会自动生成“代码度量值”结果,包括可维护性指数、圈复杂度、继承深度、类耦合度、代码的行数。
- 可维护性指数:计算一个介于 0 和 100 之间的指数值,表示维护代码的相对容易度。值越大表示可维护性越好。
- 圈复杂度:衡量代码在结构上的复杂程度。一般if 、switch case 以及 do、while、foreach 和 for 循环会增加圈复杂度。
- 继承深度:指明扩展到类层次结构根的类定义的数目。
- 类耦合:通过参数、局部变量、返回类型、方法调用、泛型或模板实例化、基类、接口实现、在外部类型上定义的字段以及属性修饰来衡量与唯一类的耦合程度。
- 代码的行数 – 指明代码中的大概行数。该计数基于 IL 代码,因此并不是源代码文件中的确切行数。
IL是.NET框架中中间语言(Intermediate Language)的缩写,.NET框架提供的编译器可以把源程序转换成中间语言。
正则表达式查找
b*[^:b#/]+.$
- Ctrl + Shift + f 打开在文件中查找
- 查找范围看需求
- 查找文件类型选择你需要的类型,如:.cpp、.h
- 查找选项选择:使用正则表达式
- 查找内容输入上面的正则
- 点击查找全部
然后就可以在查找结果的最后一行看到行数了。
严格版正则表达式查找
^(?!(\s*\*))(?!(\s*\-\-\>))(?!(\s*\<\!\-\-))(?!(\s*\n))(?!(\s*\*\/))(?!(\s*\/\*))(?!(\s*\/\/\/))(?!(\s*\/\/))(?!(\s*\}))(?!(\s*\{))(?!(\s(using))).*$
不包括空行、注释、大括号占行