在查看已编译的 CIL 时,我注意到编译后的CIL中包含了代码大小。它被删除了。下面是一个例子
C#:
static void MakeACar()
{
Car myCar = new Car();
}CIL:
.method public hidebysig static void MakeAObject() cil managed
{
//Code size 7 (0x7)
.maxstack 1
.locals init ([0] class SimpleGC.Car c)
IL_0000: newobj instance void SimpleGC.Car::.ctor()
IL_0005: stloc.O
IL_0006: ret
}代码大小代表什么?
发布于 2010-12-11 02:22:34
这只是CIL在字节码表单中占用的字节数。
(看看您的示例:您可以看到最后一条指令(ret)以字节偏移量6 (IL_0006:)开始。由于ret is encoded as a one-byte opcode,字节码流的总长度为6+1=7字节。
https://stackoverflow.com/questions/4414853
复制相似问题