首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ILGenerator,决定返回值为null

ILGenerator,决定返回值为null
EN

Stack Overflow用户
提问于 2011-07-23 14:41:17
回答 1查看 483关注 0票数 1
代码语言:javascript
复制
il.Emit(OpCodes.Callvirt, _compactBinaryReader_ReadObject);

调用此函数,并在特殊情况下提供返回值'null‘。

如果该值为null,则必须决定是否跳转到标签

在方法调用后使用

代码语言:javascript
复制
il.Emit(OpCodes.Dup);
il.Emit(OpCodes.Brfalse_S, DECISION);

给了我一个异常"JIT编译器遇到了内部限制“。但是,当我调用该函数时,代码构建正确。

我也试过OpCodes.Brfalse。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-30 21:05:50

找到解决上述问题的reasonS,

应该理解的一件事是,当抛出“CLR:运行时代码生成的验证”异常时,它意味着编写的代码格式不正确,当汇编程序评估它时,它不接受编写的代码,问题通常是因为堆栈具有额外的值或更少的值。

"JIT编译器遇到内部限制。“当它在运行时需要其他东西时抛出,我们在值中提供其他东西,或者当堆栈有其他东西而需要其他东西时抛出。

简而言之,后一个异常在运行时抛出,另一个异常在不满足预运行条件时抛出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6798765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档