C#中把数据类型分为2种:
1. 值类型 - 存储在堆栈中,直接存储其值。
2. 引用类型 - 存储在托管堆上,存储对值得引用。
这种存储位置的不同会有不同的影响:
1 //例如:下面的语句会在内存的两个地方存储值20。 2 //i和j都是int类型 3 i = 20; 4 j = i;
1 //假定有一个类Human,已经定义了字段age。 2 Human x, y; 3 x = new Human(); 4 x.age = 30; 5 y = x; 6 Console.WriteLine(y.age); //30 7 y.age = 50; 8 Console.WriteLine(x.age); //50 9 10 //x,、y是引用类型变量,只有new才会产生实例,x和y同时指向了一个实例,对x、y的操作其实是操作同一个实例
如果变量是一个引用,就可以把它值设置为null,表示它不引用任何对象。
1 Human y = null;
把基本数据类型(int、bool)定义为值类型,把包含复杂字段的较大类型(类)定义为引用类型,这种设计的原因是可以得到最佳性能。
如果需要把自定义类型声明为值类型,那么应该声明为结果Struct。
时间: 2024-10-13 11:10:27