1, 值型別儲存的是具體的值。例如int a = 1;int b = a;b++;這時b為2,a仍然是1,2, 引用型別儲存的是值的地址。例如有個型別是 UserUser u1 = new User(){ Name = "張三" };User u2 = u1;u2.Name = "李四";這時 u2 和 u1 的名字都為李四,因為 u2=u1的時候,u1和u2將指向同一個記憶體中的地址。改變u2的等於改變了u1,
值型別(value type):byte,short,int,long,float,double,decimal,char,bool 和 struct 統稱為值型別。值型別變數聲明後,不管是否已經賦值,編譯器為其分配記憶體。引用型別(reference type):string 和 class統稱為引用型別。當宣告一個類時,只在棧中分配一小片記憶體用於容納一個地址,而此時並沒有為其分配堆上的記憶體空間。當使用 new 建立一個類的例項時,分配堆上的空間,並把堆上空間的地址儲存到棧上分配的小片空間中。
1, 值型別儲存的是具體的值。例如int a = 1;int b = a;b++;這時b為2,a仍然是1,2, 引用型別儲存的是值的地址。例如有個型別是 UserUser u1 = new User(){ Name = "張三" };User u2 = u1;u2.Name = "李四";這時 u2 和 u1 的名字都為李四,因為 u2=u1的時候,u1和u2將指向同一個記憶體中的地址。改變u2的等於改變了u1,
值型別(value type):byte,short,int,long,float,double,decimal,char,bool 和 struct 統稱為值型別。值型別變數聲明後,不管是否已經賦值,編譯器為其分配記憶體。引用型別(reference type):string 和 class統稱為引用型別。當宣告一個類時,只在棧中分配一小片記憶體用於容納一個地址,而此時並沒有為其分配堆上的記憶體空間。當使用 new 建立一個類的例項時,分配堆上的空間,並把堆上空間的地址儲存到棧上分配的小片空間中。