托管代码的“基本设计准则规则”规则集

可以使用 " Microsoft 基本设计准则规则 " 规则集侧重于使代码更易于理解和使用。 您应加入此规则集,如果项目包括库代码或者,如果要实施易于维护的代码的最佳做法。

基本设计准则规则 " Microsoft 最小 " 规则 " 规则集中的所有规则。 有关最少量规则的列表,请参见 托管代码的“托管建议规则”规则集

下表 " Microsoft 基本设计准则规则 " 规则集中描述的所有规则。

规则

说明

CA1001

类型拥有一次性字段应为可释放的

CA1009

正确声明事件处理程序

CA1016

使用标记 AssemblyVersionAttribute 的程序集

CA1033

接口方法应是可调用的由子类型

CA1049

类型拥有本机资源应是一次性的

CA1060

移动 P/Invokes 移到 NativeMethods 类

CA1061

不要隐藏了基类方法

CA1063

正确实现 IDisposable

CA1065

不要在意外的位置引发异常。

CA1301

避免重复快捷键

CA1400

P/Invoke 入口点应存在

CA1401

P/Invokes 不应可见

CA1403

自动布局类型不应是可见的 COM

CA1404

对 P/Invoke 后的 GetLastError

CA1405

COM 可见的类型基础类型应当可见的 COM

CA1410

COM 应与注册方法

CA1415

正确声明 P/Invokes

CA1821

移除空的终结器

CA1900

值类型字段应为可移植

CA1901

P/Invoke 声明应可移植

CA2002

不在对象的锁。弱标识

CA2100

检查安全漏洞的 SQL 查询

CA2101

封送指定 P/Invoke 字符串参数的

CA2108

在值类型的声明性安全检查

CA2111

指针不应可见

CA2112

受保护的类型不应显示字段

CA2114

方法安全应为类型扩展

CA2116

APTCA 方法只应调用 APTCA 方法

CA2117

APTCA 类型只应扩展 APTCA 基类型

CA2122

不要取消显示链接要求的方法

CA2123

重写链接要求应与中的基础

CA2124

在外部尝试的换行易受攻击的最后子句

CA2126

键入链接要求继承要求

CA2131

安全关键类型不能参与类型等效

CA2132

默认构造函数必须至少具有重要的与基类型默认构造函数

CA2133

委托必须绑定到具有一致的透明度的方法

CA2134

,并重写基方法时,方法必须保持一致的透明度

CA2137

透明方法必须只包含可验证的 IL

CA2138

透明方法不能调用使用 SuppressUnmanagedCodeSecurity 属性的方法

CA2140

透明代码不能引用安全关键项目

CA2141

透明方法不能满足 Linkdemand

CA2146

类型必须至少具有重要的与它们的基类型约束和接口

CA2147

透明方法不能使用安全断言

CA2149

透明方法不能调用到本机代码

CA2200

保留堆栈详细信息的重新

CA2202

不要配置对象多次

CA2207

初始化值类型静态字段内联

CA2212

不要用 WebMethod 的服务组件

CA2213

应配置一次性字段

CA2214

不要对构造函数的可重写的方法

CA2216

一次性类型应声明终结器

CA2220

终结器应调用基类终结器

CA2229

实现序列化构造函数

CA2231

重载在重写 ValueType.Equals 的相等运算符

CA2232

标记窗口入学人数表点与 STAThread

CA2235

标记所有非可序列化字段

CA2236

调用了 ISerializable 类型的基类方法

CA2237

用 SerializableAttribute 的实现 ISerializable 类型

CA2238

正确执行序列化方法

CA2240

正确实现 ISerializable

CA2241

提供正确的参数传递给格式的方法

CA2242

正确测试 Nan

CA1000

不要声明泛型类型的静态成员

CA1002

不要显示泛型列表

CA1003

使用泛型事件处理程序实例

CA1004

泛型方法应提供类型参数

CA1005

避免在泛型类型的额外参数

CA1006

不要嵌套泛型类型成员签名

CA1007

在适当的时候使用普通

CA1008

枚举应具有零值

CA1010

集合应实现泛型接口

CA1011

通过基类型的考虑作为参数

CA1012

抽象类型不应有构造函数

CA1013

重载在重载运算符等于增加和减少

CA1014

使用标记 CLSCompliantAttribute 的程序集

CA1017

使用标记 ComVisibleAttribute 的程序集

CA1018

用 AttributeUsageAttribute 的属性

CA1019

定义特性参数的访问器

CA1023

索引器不应是多维数组

CA1024

在适当的时候使用属性

CA1025

使用参数数组替换重复参数

CA1026

不应使用默认参数

CA1027

用 FlagsAttribute 枚举

CA1028

枚举存储区应该是 Int32

CA1030

在适当的时候使用事件

CA1031

不要捕捉一般异常类型

CA1032

实现标准异常构造函数

CA1034

嵌套类型不应是可见的。

CA1035

ICollection 实现具有强类型成员

CA1036

在可比较类型的重写方法

CA1038

枚举数应是强类型的。

CA1039

列表是强类型

CA1041

提供 ObsoleteAttribute 消息

CA1043

为索引器使用整型或字符串参数

CA1044

属性不应仅写入

CA1046

不要重载等于引用类型的运算符

CA1047

不要声明密封类型上的受保护成员

CA1048

不要声明密封类型上的虚拟成员

CA1050

声明命名空间

CA1051

不要声明可见实例字段

CA1052

应通过静态容纳器类型

CA1053

静态持有人类型不应有构造函数

CA1054

URI 的参数不应是字符串

CA1055

URI 返回值不应是字符串

CA1056

URI 属性不应是字符串

CA1057

字符串 URI 重载调用 System.Uri 重载

CA1058

类型不应扩展某些基类型

CA1059

成员不应显示某些具体类型

CA1064

异常应是公共的

CA1500

变量名不应与字段名

CA1502

避免额外的复杂性

CA1708

标识符的情况应该由多个不同

CA1716

标识符不应与关键字

CA1801

检查未使用的参数

CA1804

移除未使用的局部

CA1809

避免额外的本地

CA1810

initialize 引用类型静态字段内联

CA1811

避免不必要的私有代码

CA1812

避免实例化的内部类

CA1813

避免打开的属性

CA1814

prefer 为了锯齿状在多维数组

CA1815

override equals 和相等运算符在值类型

CA1819

属性不应返回数组

CA1820

使用字符串长度,测试空字符串

CA1822

成员标记为 static

CA1823

避免未使用的私有字段

CA2201

不要保留引发的异常类型

CA2205

使用 Win32 API 托管等效项

CA2208

正确实例化参数异常

CA2211

非常数字段不应可见

CA2217

不要用 FlagsAttribute 枚举

CA2219

不要引发该异常子句的异常

CA2221

应保护终结器

CA2222

不要降低继承的成员可见性

CA2223

成员应由多个不同的返回类型

CA2224

在重载运算符相等的 override equals

CA2225

运算符重载将备用项名称

CA2226

运算符应具有对称重载

CA2227

应只读取集合属性

CA2230

为可变参数使用参数

CA2234

通过 System.Uri 对象而不是字符串

CA2239

为可选字段提供反序列化方法