代码改变世界

随笔分类 - CLR基础

值类型的装箱与拆箱浅析

2012-02-23 15:47 by 秋梧, 2979 阅读, 收藏, 编辑
摘要: 在.Net 中值类型向引用类型的转换以及从引用类型到值类型的转换是需要装箱(boxing)和拆箱(unboxing)的,这是因为值类型是比引用类型更轻型的一种类型,因为他们不想对象那样在托管队中分配,不会被GC收集,而且不需要通过指针来引用。但是在许多情况下都需要获取对值类型的一个实例的引用。对于在值类型与引用类型之间的互相转换,我之前一直不慎理解,在看了一些书籍之后,在本文中记录一些心得,希望各位尽量拍砖,多多指出不正确的地方,大家共同交流,共同学习、进步。 阅读全文

.Net运行时的相互关系

2012-02-16 09:42 by 秋梧, 3079 阅读, 收藏, 编辑
摘要: 阅读目录前言线程堆栈的分配托管堆上对象的分配结束语前言 .Net中的运行时,以及各个类型、对象、线程堆栈以及托管堆之间的关系,在初学者(俺是初学者中的菜鸟 J)看来,有很多是难以理解的东西,俺在看了CLR Via C# 的前几章后,现在将文中的大概意思并加以自己的理解,重现运行时,以及各个关系。希望各位尽量拍砖,多多指出不正确的地方,共同进步。线程堆栈的分配 图1中展示了CLR加载的一个Microsoft Windows进程。在一个进程中,可能会存在多个线程。在创建一个线程时,这个线程会分配到一个1MB大小的堆栈。这个堆栈空间的作用:用于向方法传递实参,并用于存储在方法内部定义的局部变量... 阅读全文