background image

访问器名称

全部

 

属性必须遵循特定的命名方式。对于一个名为

Name 

 

的属性,如果定义了

getter 方法,

 

它将叫做

get_Name

 

;如果定义了

setter 

 

方法,它将叫做

set_Name

返回类型和参数 全部

 

属性的类型是

getter 

 

的返回类型和

setter 最后一个参数的类型。属性参数的类型是对应

 

getter 

 

的参数的类型和

setter 除最后一个参数之外所有参数的类型。所有这些类型都

 

必须符合

CLS,并且不能是托管指针;它们不得被引用传递。

事件

 

   

   

事件方法

全部 用于添加和移除事件的方法必须同时存在或同时不存在。

事件方法元数据 编译

 

实现事件的方法在元数据中必须标有

mdSpecialName 标识符。

访问器可访问性 全部 用于添加、移除和引发事件的方法的可访问性必须相同。

修饰符

全部

 

用于添加、移除和引发事件的方法必须同为

static

 

、同为

virtual 

 

或同为

instance

事件方法名称

全部

 

事件必须遵循特定的命名方式。对于一个名为

MyEvent 

 

的事件,如果定义了

add 方法,

 

它将叫做

add_MyEvent

 

;如果定义了

remove 方法,它将叫做 

remove_MyEvent

 

;如果定义了

raise 

 

方法,它将叫做

raise_MyEvent

参数

全部 添加和移除事件的方法必须分别取一个参数,该参数的类型定义事件的类型,并且该类型

 

必须派生自

System.Delegate

指针类型

 

   

   

指针

全部

 

指针类型和函数指针类型是不符合

CLS 的。

接口

 

   

   

成员签名

全部

 

符合

CLS 

 

的接口要实现不符合

CLS 的方法,应该不需要这些方法的定义。

成员修饰符

全部

 

符合

CLS 

 

的接口不能定义静态方法,也不能定义字段。允许符合

CLS 的接口定义属性、事

件和虚方法。

引用类型

 

   

   

构造函数调用

全部 对于引用类型,调用对象构造函数仅作为创建对象的一部分,对象只初始化一次。

类类型

 

   

   

继承

全部

 

符合

CLS 

 

的类必须从符合

CLS 的类(

System.Object

 

 

符合

CLS)继承。

数组

 

1

 

   

   

元素类型

全部

 

数组元素必须是符合

CLS 的类型。

维数

全部 数组必须具有固定的维数数目,大于零。

范围

全部 数组的所有维数必须具有零下限。

枚举

 

   

   

基础类型

全部

 

枚举的基础类型必须是内置

CLS 整数类型(

Byte

Int16

Int32

   

Int64

)。

FlagsAttribu
te
 

编译

 

枚举的定义中存在

System.FlagsAttribute

 自定义属性指示该枚举应该作为一组位域

(标志)对待,没有该属性指示该类型应被视为一组枚举常数。建议语言使用

 

FlagsAttribute 

 

或语言特定的语法两者之一来区分这两种类型的枚举。

字段成员

全部

 

枚举的

static 字段的类型必须和枚举本身的类型相同。

异常

 

   

   

继承

全部

 

引发的对象必须是

System.Exception

 

 

类型或从

System.Exception 继承。

自定义属性

 

   

   

值编码

编译

 

要求符合

CLS 的编译器只处理自定义属性(元数据中自定义属性的表示形式)编码的子

集。只有下列类型才能出现在这些编码中:

System.Type

System.String

System.Char

System.Boolean

System.Byte

Syst

em.Int16

System.Int32

System.Int64

System.Single

System.Double

 以及任何

 

基于符合

CLS 的基础整数类型的枚举类型。

元数据

 

   

   

CLS 遵从性

全部

CLS 遵从性与程序集的遵从性不同的类型(这些类型是在该程序集中定义的)都必须标有

 

System.CLSCompliantAttribute

 

同样,其

CLS 遵从性与其类型的遵从性不同的所

 

有成员也必须进行标记。如果某个成员或类型被标记为不符合

CLS,则必须提供一个符合 

CLS 的替换选项。

泛型