团队项目开发"编码规范"之九:
代码分析
发布日期:2011年3月17日星期三作者:EricHu
勤能补拙、笨鸟先飞。
使用Visual Studio自身的代码分析功能,检查内容如下表,分为
1.安全规则。
2.互操作性规则
3.可维护性规则
4.可以只性规则
5.命名规则
6.全球化规则
7.设计规则
8.性能规则
9.移动性规则
10.用法规则
其中“是否检查”一项中为“√”的内容不能违反。需在Visual Studio中设置为错误
标识 |
详细信息 |
是否检查 |
CA2100 |
检查Sql查询中是否有安全漏洞 |
√ |
CA2104 |
不要声明只读可变引用类型 |
√ |
CA2105 |
数组字段不应为只读 |
√ |
CA2121 |
静态构造函数应为私有 |
√ |
标识 |
详细信息 |
是否检查 |
CA2000 |
超出范围前释放对象 |
√ |
9.3.可维护性规则
标识 |
详细信息 |
是否检查 |
CA1500 |
变量名不应与字段名相同 |
√ |
CA1501 |
避免过度继承 |
√ |
CA1502 |
避免过度复杂 |
√ |
9.4.命名规则
标识 |
详细信息 |
是否检查 |
CA1700 |
不要将枚举值命名为“Reserved” |
√ |
CA1705 |
较长的首字母缩略词应采用Pascal大小写格式。 |
√ |
CA1706 |
较短的首字母缩略词应全部大写 |
√ |
CA1707 |
标识符不应包含下划线 |
√ |
CA1709 |
标识符的大小写应该正确 |
√ |
CA1710 |
标识符应具有正确的后缀 |
√ |
CA1711 |
标识符应采用正确的后缀 |
√ |
CA1712 |
不要将类型名用作枚举值的前缀 |
√ |
CA1713 |
事件不应具有 before 或 after 前缀 |
√ |
CA1715 |
标识符应具有正确的前缀 |
√ |
CA1716 |
标识符不应与关键字冲突 |
√ |
CA1718 |
避免在参数中使用特定于语言的类型名 |
√ |
CA1719 |
参数名不应与成员名冲突 |
√ |
CA1720 |
标识符不应包含类型名 |
√ |
CA1721 |
属性名不应与 get 方法冲突 |
√ |
CA1722 |
标识符应采用正确的前缀 |
√ |
CA1724 |
类型名不应与命名空间冲突 |
√ |
CA1725 |
参数名应与基方法中的声明保持一致 |
√ |
9.5.性能规则
标识 |
详细信息 |
是否检查 |
CA1800 |
避免进行不必要的强制转换 |
√ |
CA1804 |
移除未使用的局部变量 |
√ |
CA1805 |
避免进行不必要的初始化 |
√ |
CA1809 |
避免过多的局部变量 |
√ |
CA1812 |
避免未实例化的内部类 |
√ |
CA1813 |
避免未密封的属性 |
√ |
CA1819 |
属性不应返回数组 |
√ |
CA1823 |
避免未使用的私有字段 |
√ |
9.6.用法规则
标识 |
详细信息 |
是否检查 |
CA1801 |
检查未使用的参数 |
√ |
CA2202 |
不要多次释放对象 |
√ |
CA2211 |
非常数字段不应该是可见的 |
√ |
CA2218 |
重写 Equals 时重写 GetHashCode |
√ |
CA2219 |
不要在异常子句中引发异常 |
√ |
CA2222 |
不要降低继承成员的可见性 |
√ |
CA2230 |
对个数可变的参数使用 params |
√ |
CA2233 |
运算不应溢出 |
√ |