The signature in the Blob heap indexed by a TypeSpec token has the following format
TypeSpecBlob ::= |
---|
PTR CustomMod* VOID |
| PTR CustomMod* Type |
| FNPTR MethodDefSig |
| FNPTR MethodRefSig |
| ARRAY Type ArrayShape |
| SZARRAY CustomMod* Type |
| GENERICINST ( CLASS | VALUETYPE ) TypeDefOrRefOrSpecEncoded GenArgCount Type Type* |
For compactness, the ELEMENT_TYPE_
prefixes have been omitted from this list. So, for example, PTR
is shorthand for ELEMENT_TYPE_PTR
. (§II.23.1.16) Note that a TypeSpecBlob does not begin with a calling-convention byte, so it differs from the various other signatures that are stored into Metadata.