一. 值类型和应用类型
1.值类型
每个值类型的对象都有一个独立的内存区域用于保存自己的值,值类型数据所在的内存区域称为栈(Stack)。只要在代码中修改它,就会在它的内存区域保存这个值。值类型主要包括基本数据类型(如 int.float.double)和枚举类型。
对值类型,不同的变量会分配不同的存储空间,并且存储空间中存储的是该变量的值。赋值操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。
2.引用类型
在C#中引用类型主要包括数组,类和接口。
对引用类型,赋值是把原对象的引用传递给另一个应用。对数组而言,当一个数组引用赋值给另一个数组引用后,这两个引用指向同一个数组,也就是指向同一块存储空间
二. 结构
1.结构的定义
访问修饰符 struct 结构名{
结构体
}
结构的定义有以下特点
a. 结构中可以有字段,也可以有方法;
b.定义时,结构中的字段不能被赋值;
2.结构的使用
结构的构成和类相似。在使用结构时,要注意以下几个方面
a.可以不用new,直接定义结构的对象即可;
b.声明结构的对象后,必须给结构的成员赋初值;
3.结构的使用经验
结构是值类型,声明结构变量就存储一个结构的新副本,即系统要开辟一块新的存储空间,因此结构用得越多所消耗的存储空间就越多
三. 装箱和拆箱
将值类型转换为引用类型的过程称为装箱,反之称为拆箱;
例:
static void Main(string[] args){
int i=123;
object h=i; //装箱
int j=(int)h; //拆箱
}