今天给一个这样的问题搞迷糊了:
如果有以下代码:
int i=222;
string s=i.ToString();
查看il代码得到:
IL_0000: ldc.i4.s 111
IL_0002: stloc.0
IL_0003: ldloca.s i
IL_0005: call instance string [mscorlib]System.Int32::ToString()
说明ToString()是Int32类的一个实例方法,但是int不是只有只占4个字节吗?如果只分配4个字节的话,ToString方法的代码的存放空间是在哪里分配的?请教高手!!!谢谢你们了!!!!!!!!!!!!!!!!
如果有以下代码:
int i=222;
string s=i.ToString();
查看il代码得到:
IL_0000: ldc.i4.s 111
IL_0002: stloc.0
IL_0003: ldloca.s i
IL_0005: call instance string [mscorlib]System.Int32::ToString()
说明ToString()是Int32类的一个实例方法,但是int不是只有只占4个字节吗?如果只分配4个字节的话,ToString方法的代码的存放空间是在哪里分配的?请教高手!!!谢谢你们了!!!!!!!!!!!!!!!!
后来有人把
T t=foo(void* this);
这处函数改成了T t=this->foo();
这样的形式,就冒出了方法这种东西