【发布时间】:2016-02-03 10:21:05
【问题描述】:
正如我所见,C# 编译器和Reflection.Emit 总是为值和引用类型变量发出.locals init(即使它们后来被无条件初始化)。所以它们可以作为输出参数传递:
.maxstack 1
.locals init (
[0] object x)
L_0000: ldloca.s x
L_0002: call void Program::MethodWithOut(object&)
L_0007: ret
在没有init 的情况下使用.locals,所以在发出 call/callvirt 之前我需要确保变量已初始化?
【问题讨论】:
标签: c# reflection.emit il