指定公共语言运行时 Type、类型修饰符,或有关元数据类型签名中的类型的信息。
typedef enum CorElementType {
ELEMENT_TYPE_END = 0x0,
ELEMENT_TYPE_VOID = 0x1,
ELEMENT_TYPE_BOOLEAN = 0x2,
ELEMENT_TYPE_CHAR = 0x3,
ELEMENT_TYPE_I1 = 0x4,
ELEMENT_TYPE_U1 = 0x5,
ELEMENT_TYPE_I2 = 0x6,
ELEMENT_TYPE_U2 = 0x7,
ELEMENT_TYPE_I4 = 0x8,
ELEMENT_TYPE_U4 = 0x9,
ELEMENT_TYPE_I8 = 0xa,
ELEMENT_TYPE_U8 = 0xb,
ELEMENT_TYPE_R4 = 0xc,
ELEMENT_TYPE_R8 = 0xd,
ELEMENT_TYPE_STRING = 0xe,
ELEMENT_TYPE_PTR = 0xf,
ELEMENT_TYPE_BYREF = 0x10,
ELEMENT_TYPE_VALUETYPE = 0x11,
ELEMENT_TYPE_CLASS = 0x12,
ELEMENT_TYPE_VAR = 0x13,
ELEMENT_TYPE_ARRAY = 0x14,
ELEMENT_TYPE_GENERICINST = 0x15,
ELEMENT_TYPE_TYPEDBYREF = 0x16,
ELEMENT_TYPE_I = 0x18,
ELEMENT_TYPE_U = 0x19,
ELEMENT_TYPE_FNPTR = 0x1B,
ELEMENT_TYPE_OBJECT = 0x1C,
ELEMENT_TYPE_SZARRAY = 0x1D,
ELEMENT_TYPE_MVAR = 0x1e,
ELEMENT_TYPE_CMOD_REQD = 0x1F,
ELEMENT_TYPE_CMOD_OPT = 0x20,
ELEMENT_TYPE_INTERNAL = 0x21,
ELEMENT_TYPE_MAX = 0x22,
ELEMENT_TYPE_MODIFIER = 0x40,
ELEMENT_TYPE_SENTINEL = 0x01 | ELEMENT_TYPE_MODIFIER,
ELEMENT_TYPE_PINNED = 0x05 | ELEMENT_TYPE_MODIFIER,
ELEMENT_TYPE_R4_HFA = 0x06 | ELEMENT_TYPE_MODIFIER,
ELEMENT_TYPE_R8_HFA = 0x07 | ELEMENT_TYPE_MODIFIER
} CorElementType;
成员
成员 |
说明 |
---|---|
ELEMENT_TYPE_END |
内部使用。 |
ELEMENT_TYPE_VOID |
void 类型。 |
ELEMENT_TYPE_BOOLEAN |
布尔值类型 |
ELEMENT_TYPE_CHAR |
字符类型 |
ELEMENT_TYPE_I1 |
有符号 1 字节整数。 |
ELEMENT_TYPE_U1 |
无符号 1 字节整数。 |
ELEMENT_TYPE_I2 |
有符号 2 字节整数。 |
ELEMENT_TYPE_U2 |
无符号 2 字节整数。 |
ELEMENT_TYPE_I4 |
有符号 4 字节整数。 |
ELEMENT_TYPE_U4 |
无符号 4 字节整数。 |
ELEMENT_TYPE_I8 |
有符号 8 字节整数。 |
ELEMENT_TYPE_U8 |
无符号 8 字节整数。 |
ELEMENT_TYPE_R4 |
4 字节浮点。 |
ELEMENT_TYPE_R8 |
8 字节浮点。 |
ELEMENT_TYPE_STRING |
System.String 类型。 |
ELEMENT_TYPE_PTR |
指针类型修饰符。 |
ELEMENT_TYPE_BYREF |
引用类型修饰符。 |
ELEMENT_TYPE_VALUETYPE |
值类型修饰符。 |
ELEMENT_TYPE_CLASS |
类类型修饰符。 |
ELEMENT_TYPE_VAR |
类变量类型修饰符。 |
ELEMENT_TYPE_ARRAY |
多维数组类型修饰符。 |
ELEMENT_TYPE_GENERICINST |
泛型类型的类型修饰符。 |
ELEMENT_TYPE_TYPEDBYREF |
类型化的引用。 |
ELEMENT_TYPE_I |
本机整数的大小。 |
ELEMENT_TYPE_U |
无符号本机整数的大小。 |
ELEMENT_TYPE_FNPTR |
指向函数的指针。 |
ELEMENT_TYPE_OBJECT |
System.Object 类型。 |
ELEMENT_TYPE_SZARRAY |
零下限一维数组类型修饰符。 |
ELEMENT_TYPE_MVAR |
方法变量类型修饰符。 |
ELEMENT_TYPE_CMOD_REQD |
C 语言必需的修饰符。 |
ELEMENT_TYPE_CMOD_OPT |
C 语言可选的修饰符。 |
ELEMENT_TYPE_INTERNAL |
内部使用。 |
ELEMENT_TYPE_MAX |
无效的类型。 |
ELEMENT_TYPE_MODIFIER |
内部使用。 |
ELEMENT_TYPE_SENTINEL |
一个类型修饰符,它充当参数个数可变的列表的标记。 |
ELEMENT_TYPE_PINNED |
内部使用。 |
ELEMENT_TYPE_R4_HFA |
内部使用。 |
ELEMENT_TYPE_R8_HFA |
内部使用。 |
备注
类型修饰符构成了用于表示更复杂类型的基础。 CorElementType 类型修饰符值应用于类型签名中紧跟在它后面的值。 跟在 CorElementType 类型修饰符值后面的值可以是 CorElementType 简单类型值、元数据标记,也可以是如下表中所指定的其他值。
![]() |
---|
所有数字(数字、参数计数、元数据标记、秩、计数和界限)都存储为压缩整数。有关详细信息,请参见 ECMA 网站上的 Standard ECMA-335 - Common Language Infrastructure (CLI)(标准 ECMA-335 — 公共语言基础结构 (CLI))。 |
类型修饰符 |
Format |
---|---|
ELEMENT_TYPE_PTR |
ELEMENT_TYPE_PTR <a CorElementType value> |
ELEMENT_TYPE_BYREF |
ELEMENT_TYPE_BYREF <a CorElementType value> |
ELEMENT_TYPE_VALUETYPE |
ELEMENT_TYPE_VALUETYPE <an mdTypeDef metadata token> |
ELEMENT_TYPE_CLASS |
ELEMENT_TYPE_CLASS <an mdTypeDef metadata token> |
ELEMENT_TYPE_VAR |
ELEMENT_TYPE_VAR <number> |
ELEMENT_TYPE_ARRAY |
ELEMENT_TYPE_ARRAY <CorElementType 值> <秩> <计数 1> <界限 1> ... <countN> <boundN> |
ELEMENT_TYPE_GENERICINST |
ELEMENT_TYPE_GENERICINST <mdTypeDef 元数据标记> <参数计数> <参数 1> ... <argN> |
ELEMENT_TYPE_FNPTR |
ELEMENT_TYPE_FNPTR <函数的完整签名,包括调用约定> |
ELEMENT_TYPE_SZARRAY |
ELEMENT_TYPE_SZARRAY <a CorElementType value> |
ELEMENT_TYPE_MVAR |
ELEMENT_TYPE_MVAR <number> |
ELEMENT_TYPE_CMOD_REQD |
ELEMENT_TYPE_<a mdTypeRef or mdTypeDef metadata token> |
ELEMENT_TYPE_CMOD_OPT |
E_T_CMOD_OPT <a mdTypeRef or mdTypeDef metadata token> |
要求
**平台:**请参见 .NET Framework 系统要求。
**头文件:**CorHdr.h
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0