MSIL 中的短路评估如何工作
msil 解释器中的短路评估如何工作? And 指令是否包含有关如果为 false 则跳转到何处的信息,对于 Or 如果为 true 则是否包含相同的信息?
How does the short circuit evaluation work in the msil interpreter? Does the And instruction contain information about where to jump to if false, and same for the Or with true?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
否 - And 和 Or 的 IL 指令实际上对堆栈顶部的两个操作数执行按位运算。如果高级语言使用短路求值,它将被编译为 IL 级别的显式分支操作,并且根本不依赖于 And 指令。使用 Reflector 等工具查看相关编译器生成的实际 IL。
No - the IL instructions for And and Or actually perform bitwise operations on the top two operands on the stack. If a high level language uses short circuit evaluation, it is compiled down to explicit branching operations at the IL level and doesn't rely on the And instruction at all. Use a tool like Reflector to see the actual IL produced by the compiler in question.