正如我看到的C#编译器和Reflection.Emit
总是发出.locals init
值和引用类型的变量(即使他们后来无条件地初始化)。我需要在ldloca之前先调用initobj /分配null参数吗?
.maxstack 1
.locals init (
[0] object x)
L_0000: ldloca.s x
L_0002: call void Program::MethodWithOut(object&)
L_0007: ret
是否有其中不init
所以发射呼叫/ callvirt我需要确保该变量初始化之前使用.locals
任何情况下:所以他们可以作为out参数传递?
是的,我知道C#。我在问IL组装规则。 – Vlad
对不起,我很抱歉,请参阅最新的问题。 – Vlad