团队项目开发"编码规范"之九:
代码分析
发布日期:2011年3月17日星期三作者:EricHu
勤能补拙、笨鸟先飞。
使用Visual Studio自身的代码分析功能,检查内容如下表,分为
1.安全规则。
2.互操作性规则
3.可维护性规则
4.可以只性规则
5.命名规则
6.全球化规则
7.设计规则
8.性能规则
9.移动性规则
10.用法规则
其中“是否检查”一项中为“√”的内容不能违反。需在Visual Studio中设置为错误
9.1. 安全性规则
标识 | 详细信息 | 是否检查 |
CA2100 | 检查Sql查询中是否有安全漏洞 | √ |
CA2104 | 不要声明只读可变引用类型 | √ |
CA2105 | 数组字段不应为只读 | √ |
CA2121 | 静态构造函数应为私有 | √ |
9.2. 可靠性规则
标识 | 详细信息 | 是否检查 |
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 | 运算不应溢出 | √ |