CorElementType Enumeration
Specifies a common language runtime Type, a type modifier, or information about a type in a metadata type signature.
Syntax
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
} CorElementType;
Members
Member | Description |
---|---|
ELEMENT_TYPE_END |
Used internally. |
ELEMENT_TYPE_VOID |
A void type. |
ELEMENT_TYPE_BOOLEAN |
A Boolean type |
ELEMENT_TYPE_CHAR |
A character type. |
ELEMENT_TYPE_I1 |
A signed 1-byte integer. |
ELEMENT_TYPE_U1 |
An unsigned 1-byte integer. |
ELEMENT_TYPE_I2 |
A signed 2-byte integer. |
ELEMENT_TYPE_U2 |
An unsigned 2-byte integer. |
ELEMENT_TYPE_I4 |
A signed 4-byte integer. |
ELEMENT_TYPE_U4 |
An unsigned 4-byte integer. |
ELEMENT_TYPE_I8 |
A signed 8-byte integer. |
ELEMENT_TYPE_U8 |
An unsigned 8-byte integer. |
ELEMENT_TYPE_R4 |
A 4-byte floating point. |
ELEMENT_TYPE_R8 |
An 8-byte floating point. |
ELEMENT_TYPE_STRING |
A System.String type. |
ELEMENT_TYPE_PTR |
A pointer type modifier. |
ELEMENT_TYPE_BYREF |
A reference type modifier. |
ELEMENT_TYPE_VALUETYPE |
A value type modifier. |
ELEMENT_TYPE_CLASS |
A class type modifier. |
ELEMENT_TYPE_VAR |
A class variable type modifier. |
ELEMENT_TYPE_ARRAY |
A multi-dimensional array type modifier. |
ELEMENT_TYPE_GENERICINST |
A type modifier for generic types. |
ELEMENT_TYPE_TYPEDBYREF |
A typed reference. |
ELEMENT_TYPE_I |
Size of a native integer. |
ELEMENT_TYPE_U |
Size of an unsigned native integer. |
ELEMENT_TYPE_FNPTR |
A pointer to a function. |
ELEMENT_TYPE_OBJECT |
A System.Object type. |
ELEMENT_TYPE_SZARRAY |
A single-dimensional, zero lower-bound array type modifier. |
ELEMENT_TYPE_MVAR |
A method variable type modifier. |
ELEMENT_TYPE_CMOD_REQD |
A C language required modifier. |
ELEMENT_TYPE_CMOD_OPT |
A C language optional modifier. |
ELEMENT_TYPE_INTERNAL |
Used internally. |
ELEMENT_TYPE_MAX |
An invalid type. |
ELEMENT_TYPE_MODIFIER |
Used internally. |
ELEMENT_TYPE_SENTINEL |
A type modifier that is a sentinel for a list of a variable number of parameters. |
ELEMENT_TYPE_PINNED |
Used internally. |
Remarks
The type modifiers form the basis for representing more complex types. A CorElementType
type modifier value is applied to the value that immediately follows it in the type signature. The value that follows the CorElementType
type modifier value can be a CorElementType
simple type value, a metadata token, or other value, as specified in the following table.
Note
All numbers (number, argument Count, metadata token, rank, count, and bound) are stored as compressed integers. See Standard ECMA-335 - Common Language Infrastructure (CLI) on the ECMA Web site for details.
Type modifier | 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 <a CorElementType value> <rank> <count1> <bound1> ... <countN> <boundN> |
ELEMENT_TYPE_GENERICINST |
ELEMENT_TYPE_GENERICINST <an mdTypeDef metadata token> <argument Count> <arg1> ... <argN> |
ELEMENT_TYPE_FNPTR |
ELEMENT_TYPE_FNPTR <complete signature for the function, including calling convention> |
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> |
Requirements
Platforms: See System Requirements.
Header: CorHdr.h
.NET Framework Versions: Available since 1.0
See also
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for