摘要: CLR支持两种基本类型:值类型和引用类型MSDN关于值类型与引用类型的说明:值类型(Value Type),值类型实例通常分配在线程的堆栈(stack)上,并且不包含任何指向实例数据的指针,因为变量本身就包含了其实例数据,比如:Int,Bool,Struct,Enum。所有的值类型数据继承自System.ValueType,而System.ValueType本身又继承自System.Object。所有的枚举都继承自System.Enum,而System.Enum又继承自System.ValueType.引用类型(Reference Type),引用类型实例分配在托管堆(managed heap 阅读全文
posted @ 2012-01-31 17:10 challengesoflife 阅读(485) 评论(0) 推荐(1) 编辑
摘要: 值类型与引用类型的嵌套:1。当引用类型中嵌套值类型时:值类型将作为引用类型实例的一部分被分配在托管堆中2。当值类型嵌套引用类型时:引用类型将做为值类型的成员变量,堆栈上保存该成员变量的内存地址,成员的实例将依然保存在托管堆中。值类型 是比引用类型更为轻量级的类型,因为他没有被分配在托管堆中,不会被执行垃圾收集,也没有指向它们的指针。装箱:就是将一个值类型数据转换为一个引用类型数据,装箱的操作步骤由以下组成:1。从托管堆中为新生成的引用类型对象分配内存,分配的内存大小为,值类型实例本身大小加上其它额外的将该值类型实例视为真正的引用对象所需的空间,这些额外的空间包括一个方法表指针和一个SyncBl 阅读全文
posted @ 2012-01-31 12:54 challengesoflife 阅读(320) 评论(0) 推荐(0) 编辑