什么" !!"在MSIL明确表示?

时间:2015-03-12 12:12:13

标签: .net cil

当在MSIL中调用方法时,我通常会看到值!!0被传递一个参数,通常连续多次传递。

这是什么意思,具体来说,我认为它意味着从堆栈中弹出第一个值并将其作为参数推送。然而,我想知道是否还有进一步的澄清。例如,第一个!是什么意思,第二个!代表重复最后一步,为下一个参数分配做准备?

明确地说,!!运营商做了什么?

1 个答案:

答案 0 :(得分:3)

  

方法中的通用参数   定义,从0开始按索引访问

the ECMA specification for CIL一样。

第11.7.1节 - 类型。它是ECMA 335,如果链接在将来变得死亡,那么:)

因此,从人类的角度来说,它是指向泛型方法的泛型参数类型的指针。对于泛型类型的泛型参数类型,您可以使用!0(以及!1等)。