IL发出 - 操作可能会在存储然后加载时破坏运行时的稳定性

时间:2010-12-24 21:44:57

标签: c# cil

嘿,所以我有以下IL:

il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Ret);

哪个工作正常。它基本上返回给定的参数。 但是,这个:

il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Stloc_0);
il.Emit(OpCodes.Ldloc_0);
il.Emit(OpCodes.Ret);

不起作用。它崩溃,但“操作可能会破坏运行时的稳定性”。 现在,我知道这样做的目的毫无用处,但我试图通过小步骤实现我的目标。 为什么这不起作用?

1 个答案:

答案 0 :(得分:3)

您是否已宣布当地人? arg0和loc0的类型是否匹配?另外你知道实例方法中的arg0是这个引用,对吗?