一个进程有多个线程,线程创建时会占用1MB的栈,栈空间用于向方法传递实参,方法内部定义的局部变量也在栈上,栈从高位内存地址向低位内存地址构建
CLR其实允许定义一个同名、同参的方法,但是除了汇编,其他实现了CLR的语言都不允许这么干。这是为毛呢?
CLR调用虚方法和非虚方法,CLR提供两个方法指令
call、callvirt
call用来调用静态方法,如果是值类型定义的方法,那么CLR将以call来调用非静态方法,因为值类型及时有虚方法也不需要考虑多态性,值类型的本质也保证了this永不为NULL
callvirt用来调用非静态方法
call指令的执行速度要比callvirt快,因为callvirt会检查调用的对象是否为NULL,如果是NULL会抛出异常。
原文:http://www.cnblogs.com/wangluailaopo/p/6412030.html