我在 ildasm 中分解了以下 C++/CLI 代码:
Managed(char * const a)
{
}
反汇编后的 IL 如下所示:
.method public hidebysig specialname rtspecialname
instance void .ctor(int8 modopt([mscorlib]System.Runtime.CompilerServices.IsSignUnspecifiedByte)* modopt([mscorlib]System.Runtime.CompilerServices.IsConst) modopt([mscorlib]System.Runtime.CompilerServices.IsConst) a) cil managed
删除一些无关紧要的部分:
.method public hidebysig specialname rtspecialname
instance void .ctor(int8* modopt(IsConst) modopt(IsConst) a) cil managed
因此,虽然原始代码中只有一个const
,但它在 IL 中被发出了两次。为什么呢?