GetType(>>,贴上价值类型箱的数值。 通过将价值类别移至微粒,现在有一个参考类型,现在该参考类别就是指该物体的类型。
如果你希望避免打箱,请打电话GetTypeCode
,其中注明价值类型而无需箱子的点数。
这里的一个例子是,出现了下列插手:
<><>C#>:
class Program
{
static void Main()
{
34.GetType();
}
}
Main(:>
.method private hidebysig static void Main() cil managed
{
.entrypoint
.maxstack 8
L_0000: ldc.i4.s 0x22
L_0002: box int32
L_0007: call instance class [mscorlib]System.Type [mscorlib]System.Object::GetType()
L_000c: pop
L_000d: ret
}
<><>Edit>: 为了显示汇编者正在做些什么,请将字面的类型改变为:
class Program
{
static void Main()
{
34L.GetType();
}
}
在字面之后添加<代码>L”<>,我告诉汇编者,我希望将字面改为<代码>System.Int64。 汇编者看到这一点,在采用<编码> 方框<>代码/代码>指示时,其认为:
.method private hidebysig static void Main() cil managed
{
.entrypoint
.maxstack 8
L_0000: ldc.i4.s 0x22
L_0002: conv.i8
L_0003: box int64
L_0008: call instance class [mscorlib]System.Type [mscorlib]System.Object::GetType()
L_000d: pop
L_000e: ret
}
各位可以看到,汇编者在由《刑法》委员会执行之后,为确定正确的发送指示做了艰苦的工作。