值类型直接存储其值,而引用类型则保存对值的引用,就物理内存而言,值类型存贮在堆栈里,引用类型存储在托管堆上。
//i and j are both of type int
i=20;j=i; //在这里,内存中将在2个地方存储值20
对于下面这个例子,假如newType是一个引用类型
//x and y are both type of newType
x = new newType();
x.value=30;
y=x;//x和y都指向包含该对象的内存位置,x,y都只保留一个引用
Console.WriteLine(y.value);
y.value=50;
Console.WriteLine(x.value);
输出结果为
30
50
当我们希望一个引用类型的变量不引用任何对象可:y=null;
//i and j are both of type int
i=20;j=i; //在这里,内存中将在2个地方存储值20
对于下面这个例子,假如newType是一个引用类型
//x and y are both type of newType
x = new newType();
x.value=30;
y=x;//x和y都指向包含该对象的内存位置,x,y都只保留一个引用
Console.WriteLine(y.value);
y.value=50;
Console.WriteLine(x.value);
输出结果为
30
50
当我们希望一个引用类型的变量不引用任何对象可:y=null;