"!!" 是什么意思?在 MSIL 中明确表示?
What does "!!" explicitly mean in MSIL?
在 MSIL 中调用方法时,我通常会看到值 !!0
被传递给参数,而且通常连续多次。
这是什么意思,具体来说,我认为它的意思是将第一个值弹出堆栈并将其作为参数压入。但是,我想知道是否有进一步的说明比起那个来说。例如,第一个 !
是否意味着什么,第二个 !
表示重复最后一步,为下一个参数分配做准备?
明确地说,!!
运算符是做什么的?
Generic parameter in a method
definition, accessed by index from 0
如 the ECMA specification for CIL.
第 11.7.1 节 - 类型。它是 ECMA 335,如果 link 将来会死:)
所以用人类的话说,它是一个指向泛型方法的泛型参数类型的指针。对于泛型类型的泛型参数类型,您将使用 !0
(和 !1
等)。
在 MSIL 中调用方法时,我通常会看到值 !!0
被传递给参数,而且通常连续多次。
这是什么意思,具体来说,我认为它的意思是将第一个值弹出堆栈并将其作为参数压入。但是,我想知道是否有进一步的说明比起那个来说。例如,第一个 !
是否意味着什么,第二个 !
表示重复最后一步,为下一个参数分配做准备?
明确地说,!!
运算符是做什么的?
Generic parameter in a method definition, accessed by index from 0
如 the ECMA specification for CIL.
第 11.7.1 节 - 类型。它是 ECMA 335,如果 link 将来会死:)
所以用人类的话说,它是一个指向泛型方法的泛型参数类型的指针。对于泛型类型的泛型参数类型,您将使用 !0
(和 !1
等)。