ILGenerator:如何向堆栈添加布尔值

Pav*_*sky 8 boolean reflection.emit

这是我可以将浮点值放入堆栈的方式(在C#中):

ILGenerator gen = method.GetILGenerator();
gen.Emit(OpCodes.Ldc_R4, (float)12.5);
Run Code Online (Sandbox Code Playgroud)

如何使用Emit方法将布尔值放入堆栈?

Sam*_*ell 22

评估堆栈上没有布尔值的表示.bool,char,byte,ushort,uint及其签名变体都表示为4字节有符号整数(i4).

真正:

ldc.i4.1
Run Code Online (Sandbox Code Playgroud)

假:

ldc.i4.0
Run Code Online (Sandbox Code Playgroud)