.NET 中有没有办法使用Reflection.Emit
, 来访问堆栈中最顶层但只有一个的项目?因此,如果 A 是最上面的,然后是 B - 我想处理 B 然后是 A。在 A上方复制 B 会很好(因为当我到达第二个 B 时,我可以简单地“弹出”第二个 B)。
目前,我正在声明一个本地:
LocalBuilder loc = il.DeclareLocal(typeof(Foo));
il.Emit(OpCodes.Stloc, loc); // store and pop topmost stack item
// work with (pop) previous stack item
il.Emit(OpCodes.Ldloc, loc); // push old topmost stack item
是否有不需要显式本地的路线?