使用emit返回null
本文关键字:null 返回 emit 使用 | 更新日期: 2023-09-27 18:02:02
我一直在使用FastMember项目。它包含以下代码:
il.Emit(OpCodes.Ldarg, 2);
il.Emit(OpCodes.Newobj, typeof(ArgumentOutOfRangeException).GetConstructor(new[] { typeof(string) }));
il.Emit(OpCodes.Throw);
我想把它改成只返回null。我试着用单线il.Emit(OpCodes.Ret);
代替它。然而,我得到无效的程序错误使用它。如何使用发出的代码将返回值设置为null ?
如果你只是释放ret
,那就像c#中的return;
。但你需要return null;
你应该使用
il.Emit(OpCodes.Ldnull);
il.Emit(OpCodes.Ret);