Есть ли способ в .NET, использующий Reflection.Emit
, получить доступ к самому верхнему элементу из стека? Так что, если A является верхним, а B следующим - я хочу обработать B, тогда A. Было бы хорошо продублировать B выше A (поскольку я могу просто «выдвинуть» второй 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
Есть ли маршрут, который не нуждается в явном локальном?