1. 值类型的数据存储在内存的栈中;引用类型的数据存储在内存的堆中,而内存单元中只存放堆中对象的 地址。
2. 值类型存取速度快,引用类型存取速度慢。
3. 值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针或引用
4. 值类型继承自System.ValueType,引用类型继承自System.Object
5. 值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。
结构与类的不同
1.结构的定义
1 [修饰符] struct [结构名] [ : 接口名]
2 {
3 //结构成员
4 }
2.结构的构造函数
1 public struct Test
2 {
3 public Test()
4 {
5 //此方法编译不会通过,提示错误消息“结构不能包含显示的无参数构造函数”
6 }
7 }
3.结构的成员变量赋值
1 struct Test
2 {
3 static int x = 1;
4 static int y = x + 5;
5 //以下两句编译错误,在结构中可以给结构的静态变量赋初值,但不允许给结构的一个实例变量赋初值
6 int m = 2;
7 int n = m + 2;
8 }
4.创建对象的方法
使用new运算符来创建结构对象
直接用结构类型的变量来创建结构对象
5.继承
不允许结构从另外一个结构或类继承
总结
1.结构是一种值数据类型,而类是一种引用类型
2.在结构中不允许定义无参数的构造函数(编译不会通过)
3.在结构中可以给结构的静态变量赋初值,但不能给结构的一个实例变量赋初值
4.创建结构对象可以不使用new关键字,直接用结构类型的变量来创建
5.不允许继承(可以将结构看成是密封的类)