例如,out在C#中使用关键字的方法中的参数将显示在元数据签名中,前面带有&符号&.我正在尝试为通用方法创建签名,但我不想使用元数据API来解决这个问题,当然它已在某处记录了吗?
这是我在Socket类上对BeginReceiveFrom的意思的一个例子:
System.IAsyncResult([]System.Byte,System.Int32,System.Int32,
System.Net.Sockets.SocketFlags,&System.Net.EndPoint,
System.AsyncCallback,System.Object)
Run Code Online (Sandbox Code Playgroud)
对于未构造的类型,有一个反引号后跟参数的数量,例如
List`1
Dictionary`2
Run Code Online (Sandbox Code Playgroud)
从ECMA 335,第10.7.2节:
10.7.2类型名称和arity编码
符合CLS的通用类型名称使用格式名称['arity]进行编码,其中[...]表示严重重音字符
__CODE__和arity一起是可选的.编码名称应遵循以下规则:
- name应为不包含"`"字符的ID(参见Partition II).
- arity指定为无符号十进制数,不带前导零或空格.
- 对于普通泛型类型,arity是在类型上声明的类型参数的数量.
- 对于嵌套泛型类型,arity是新引入的类型参数的数量.
(请注意,由于降价,我无法在引号中使用反引号 - 因此是撇号!)
不确定构造的类型......