凡是直接繼承自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...