1.概念
1.值类型和引用类型的原理
2.线程栈和托管堆
3.装箱和拆箱
装箱:就是将一个值类型转换成等价的引用类型。
拆箱:跟装箱相反的操作,将一个已近装箱的引用类型转换为值类型。
4.类型判等
基本类型原理:
c#的基本类型是按照数据在计算机内存是如何被分配来划分,一种是值类型(Value Type)基础类型是结构,使用中内存保存在栈中,一种是引用类型(Reference Type)基础类型是类,使用中内存保存在堆中常用关键字new创造空间。还有一种特殊类型,这里称之为简单类型,string类型是一种简单的引用类型,它不需要new关键字创造可以直接来使用,还有一些特殊的值类型(Simple Type)别如byte啊int等,在System.Int32结构类型中定义属性和方法在Int32类型中都可以调用,比如:int a= 1; int b = new int();。原因是因为所有的值类型隐式继承了System.ValueType,它是一个类....上面不是说值类型的基础类型是个结构吗,在c#代码中是看不到这种继承关系的,这个关系只能通过MSIL代码才可以看到,所以说是隐式继承的,才会有引用类型的操作。
这里注意的是,栈(Stack)是一种先进后出的数据结构,堆(Heap)是用于引用类型分配空间的区域,创造一个对象将该对象的地址传给栈上的变量
值类型:枚举、结构(数值类型、bool、用户自定义结构类型)
引用类型:关键字定义类型(类、接口、泛型、事件、委托)、内置引用类型&#x