首页 > Windows开发 > 详细

CLR IN C# 笔记 类型和成员基础

时间:2017-02-18 00:36:54      阅读:278      评论:0      收藏:0      [点我收藏+]

一个进程有多个线程,线程创建时会占用1MB的栈,栈空间用于向方法传递实参,方法内部定义的局部变量也在栈上,栈从高位内存地址向低位内存地址构建

CLR其实允许定义一个同名、同参的方法,但是除了汇编,其他实现了CLR的语言都不允许这么干。这是为毛呢?

CLR调用虚方法和非虚方法,CLR提供两个方法指令

call、callvirt

call用来调用静态方法,如果是值类型定义的方法,那么CLR将以call来调用非静态方法,因为值类型及时有虚方法也不需要考虑多态性,值类型的本质也保证了this永不为NULL

callvirt用来调用非静态方法

call指令的执行速度要比callvirt快,因为callvirt会检查调用的对象是否为NULL,如果是NULL会抛出异常。

 

CLR IN C# 笔记 类型和成员基础

原文:http://www.cnblogs.com/wangluailaopo/p/6412030.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!