Type is encoded in signatures as follows (I1
is an abbreviation for ELEMENT_TYPE_I1
, U1
is an abbreviation for ELEMENT_TYPE_U1
, and so on; see II.23.1.16):
Type ::= |
---|
BOOLEAN | CHAR | I1 | U1 | I2 | U2 | I4 | U4 | I8 | U8 | R4 | R8 | I | U |
| ARRAY Type ArrayShape (general array, see §II.23.2.13) |
| CLASS TypeDefOrRefOrSpecEncoded |
| FNPTR MethodDefSig |
| FNPTR MethodRefSig |
| GENERICINST (CLASS | VALUETYPE ) TypeDefOrRefOrSpecEncoded GenArgCount Type* |
| MVAR number |
| OBJECT |
| PTR CustomMod* Type |
| PTR CustomMod* VOID |
| STRING |
| SZARRAY CustomMod* Type (single dimensional, zero-based array i.e., vector) |
| VALUETYPE TypeDefOrRefOrSpecEncoded |
| VAR number |
The GenArgCount non-terminal is an unsigned integer value (compressed) specifying the number of generic arguments in this signature. The number non-terminal following MVAR
or VAR
is an unsigned integer value (compressed).