值型別與引用型別區別

2021-10-03 12:18:43 字數 629 閱讀 9885

凡是直接繼承自system.valuetype的都是值型別,其他就是引用型別

區別就是乙個是傳值,乙個是傳引用

c#中值型別與引用型別的值傳遞與引用傳遞

值型別:結構體,數值型別(int,double,char,),bool型,列舉,可空型別(nullable)

引用型別:陣列,使用者定義的類、介面、委託,object,字串

值型別儲存在記憶體裡的棧裡,引用型別儲存在記憶體裡的堆裡。

值傳遞時,形參到實參實質上是棧裡的內容複製,引用傳遞時,形參到實參實質上棧內容位址的複製。

注意 :  object  a = 1;

type t1 = a.gettype();

此時a的型別是int32 ,而不是object;

所以a還是值型別;

值型別:整數,浮點數,高精度浮點數,布林,字元,結構,列舉

引用型別:物件(object),字串,類,介面,委託,陣列

除了值型別和引用型別,還有一種資料型別是空型別(null)**

整數,浮點數,高精度浮點數,布林,字元,物件(object),字串 是預定義的型別

結構,列舉,類,介面,委託,陣列 是復合型別

值型別與引用型別的區別

1.值型別儲存的是數值,引用型別儲存的是位址。2.值型別存放在棧中,引用型別存放在堆中。3.值型別不可以是null,引用型別可以使null。4.值型別不具有多型性,引用型別具有多型性。5.值型別沒有繼承性,引用型別有繼承性。6.值型別有裝箱與未裝箱,引用型別只有裝箱。using system usi...

值型別與引用型別的區別

1 值型別 包括 sbyte short int long float double decimal 以上值型別有符號 byte ushort uint ulong 以上值型別無符號 bool char 2 引用型別 包括 物件型別 動態型別 字串型別 1 值型別 byte b1 1 byte b2...

C 值型別與引用型別的區別

net將資料型別分為值型別 value type 和引用型別 reference type 乙個具有值型別 value type 的資料存放在棧 內的乙個變數中。即是在棧中分配記憶體空間,直接儲存所包含的值,其值就代表資料本身。值型別的資料具有較快的訪問速度。乙個具有引用型別 reference t...