访问器名称
全部
属性必须遵循特定的命名方式。对于一个名为
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。
参数
全部 添加和移除事件的方法必须分别取一个参数,该参数的类型定义事件的类型,并且该类型
必须派生自
指针类型
指针
全部
指针类型和函数指针类型是不符合
CLS 的。
接口
成员签名
全部
符合
CLS
的接口要实现不符合
CLS 的方法,应该不需要这些方法的定义。
成员修饰符
全部
符合
CLS
的接口不能定义静态方法,也不能定义字段。允许符合
CLS 的接口定义属性、事
件和虚方法。
引用类型
构造函数调用
全部 对于引用类型,调用对象构造函数仅作为创建对象的一部分,对象只初始化一次。
类类型
继承
全部
符合
CLS
的类必须从符合
CLS 的类(
符合
CLS)继承。
数组
1
元素类型
全部
数组元素必须是符合
CLS 的类型。
维数
全部 数组必须具有固定的维数数目,大于零。
范围
全部 数组的所有维数必须具有零下限。
枚举
基础类型
全部
枚举的基础类型必须是内置
CLS 整数类型(
或
FlagsAttribu
te
编译
器
枚举的定义中存在
(标志)对待,没有该属性指示该类型应被视为一组枚举常数。建议语言使用
FlagsAttribute
或语言特定的语法两者之一来区分这两种类型的枚举。
字段成员
全部
枚举的
static 字段的类型必须和枚举本身的类型相同。
异常
继承
全部
引发的对象必须是
类型或从
System.Exception 继承。
自定义属性
值编码
编译
器
要求符合
CLS 的编译器只处理自定义属性(元数据中自定义属性的表示形式)编码的子
集。只有下列类型才能出现在这些编码中:
基于符合
CLS 的基础整数类型的枚举类型。
元数据
CLS 遵从性
全部
CLS 遵从性与程序集的遵从性不同的类型(这些类型是在该程序集中定义的)都必须标有
此
。同样,其
CLS 遵从性与其类型的遵从性不同的所
有成员也必须进行标记。如果某个成员或类型被标记为不符合
CLS,则必须提供一个符合
CLS 的替换选项。
泛型