是否有CIL指令来交换堆栈中的前两个元素?

有帮助吗?

解决方案

没有单一的指令交换。但是,使用 stloc pop ,以及 ldloc ,您应该能够完成交换。

其他提示

没有。交换元素的唯一方法是将前两个元素弹出到本地,然后以相反的顺序推送它们。

查看 CIL指令列表,似乎没有一条指令它交换堆栈顶部的两个元素。你必须用旧的弹出/推送方式来做。

为了将来参考,您可以创建一个程序集,执行您想要学习IL的内容,然后在Reflector中查看程序集。您可以选择希望代码所在的语言,IL是其中一个选项。我在尝试弄清楚如何编写动态方法时这样做了......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top