值类型和引用类型

1.区别:

(1)从概念上看,值类型直接存储其值,而引用类型存储对值的引用。这两种存储在内存的不同的地方;值类型存储在堆栈中,而引用类型存储在托管堆上。

(2)  在使用时要注意区分某个类型是值类型还是引用类型,因为它们存储位置不同会造成不同的影响。

例1:int是值类型,下面的语句会在内存的两个地方存储值20;

int  i=20;

int j=20;

例2:定义一个类Vector,Vector是一个引用类型,它有一个int类型的成员变量Value:

Vector x,y;

x=new Vector();

x.Value=30;

y=x;

Console.WriteLine(y.Value)

y.Value=50;

在执行这段代码后,只有一个Vector对象,x,y都指向包含该对象的内存位置,因为它们是引用类型的变量,声明这两个变量只保留一个引用,而不会实例化给定类型的对象,因为x,y引用同一个对象,所以它们之间的改变是互相影响的,所以上面代码结果是:30和50.

原文地址:https://www.cnblogs.com/lxjie/p/3143291.html