随笔分类 -  CLR学习笔记

记录我学CLR的过程和知识点
摘要:当CLR开始加载一个Microsoft Windows进程,在这个进程中可能存在多个线程,当一个线程创建时,它会分配到一个1M大小的堆栈,这个堆栈空间用于向方法传递实参,并用于存储方法内部定义的局部变量,上图展示了一个线程的堆栈内存(右侧)。堆栈是从高位内存地址向低位内存地址构建的,在图中,该纯种执行了一 些代码,它的堆栈上已经有一些数据(显示成堆栈顶部的阴影区域),现在假定线程执行的代码要调用M1方法... 阅读全文
posted @ 2009-01-23 18:22 Done 阅读(725) 评论(0) 推荐(1)
摘要:CLR允许将一个对象强制转换成它原来的类型或者它和任何基类型。C#要求将一个对象显式的转换成它的任何派生类型...使用is和as进行转换... 阅读全文
posted @ 2009-01-23 01:14 Done 阅读(481) 评论(0) 推荐(0)
摘要:CLR集成了很多种语言,并让它们之间可以相互访问,是因为CLR建立的标准的类型集、元数据、公共执行环境。但由于各种语言间存在着极大的差别,如区分大小写,有的不支持unsigned、操作符重载或者参数可变的方法,所以要想创建这种让别的语言能访问的程序,自己所用的编程语言只能使用其它语言都支持的那些特性。为了帮助我们更好的做到这一点,Microsoft定义了一个"公共语言规范(Common Language Specification,CLS)"... 阅读全文
posted @ 2009-01-21 23:27 Done 阅读(1204) 评论(0) 推荐(1)
摘要: 前面已经知道了什么是托管代码、IL、元数据、程序集等,现在总体来看看咱们写的代码是在DotNet平台下是个怎么运行的... 阅读全文
posted @ 2009-01-21 09:45 Done 阅读(359) 评论(0) 推荐(0)
摘要:元数据是一个二进制数据块,它由几个表构成,这些表分为三个类别:定义表(definition table)、引用表(reference table)、以及清单表(manifest table)... 阅读全文
posted @ 2009-01-21 02:09 Done 阅读(634) 评论(0) 推荐(0)
摘要:不安全代码就是要写在unsafe命名空间下,对内存地址直接操作的代码。在默认情况下C#编译器生成的是安全代码,在编译不安全代码时,C#编译器要求我们使用/unsafe编译器开关来编译源代码,在IDE中,选中“项目属性->生成”里的“允许不安全代码”,编译时就会自动加上/unsafe选项。 阅读全文
posted @ 2009-01-20 17:06 Done 阅读(475) 评论(0) 推荐(0)
摘要:程序集的概念、组成、作用、和命名空间的区别... 阅读全文
posted @ 2009-01-20 01:48 Done 阅读(988) 评论(1) 推荐(0)
摘要:介绍托管模块的组成,PE32或PE32+头、CLR头、元数据、中间语言... 阅读全文
posted @ 2009-01-19 01:33 Done 阅读(1071) 评论(0) 推荐(1)
摘要:Jeffrey Richter《框架设计(第二版)CLR Via C#》一书前面提到的一些概念,托管与非托管,x32,x64,x86,IA32...理解后对学习阅读很有帮助 阅读全文
posted @ 2009-01-18 01:44 Done 阅读(517) 评论(0) 推荐(0)