1

查看编译后的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
}

代码大小代表什么?

4

1 回答 1

3

这只是 CIL 在其字节码形式中占用的字节数。

(看一下您的示例:您可以看到最后一条指令(ret)从字节偏移量 6(IL_0006:)开始。由于ret被编码为单字节操作码,因此字节码流的总长度为 6 + 1 = 7字节。)

于 2010-12-11T02:22:34.100 回答