品味类型:通用类型系统
CLI(公共语言架构)=CTS通用类型系统+CLS公共语言规范
CTS:解决各个语言类型互操作
CIL:ClR的中间代码,CLR的汇编代码。
.NET FrameWork=CLR+FCL:
.NET Framework:CLI在windows平台实现。
FCL:以system为根目录的命名空间。
值类型:存放在线程的Stack上面,常用的 枚举,int,
引用类型:存放在托管堆上面(Heap),保存了实例数据的引用。class,string,object,delegate,interface
实例如下:
- MyStruct mystruct1=new MyStruct ();定义一个结构体
- MyClass myclass1=new MyClass ();定义一个类
- MyStruct mystruct2=new MyStruct ();
- mystruct2=mystruct1;
- MyClass myclass2=new MyClass ();
- myclass2=myclass1;
每个变量或者程序都有其在堆栈上面的位置。(mystruct1,mystruct2,myclass1,myclass2都存在不同的堆栈上面。)
值类型在堆栈上面保存的实际数据,而引用类型是保存的对实际数据的引用地址。
myclass只存了实例数据的引用。所有在改变了myclass值是会影响到myclass2.
值类型总是分配在它声明的地方,引用类型总是分配在托管堆上面。(值类型声明在值类型里面,分配在堆栈上面,声明在引用类型中,则和引用类型一起,分配在托管堆中。)
看到159页