c#的值型別包括:結構體(數值型別,bool型,使用者定義的結構體),列舉,可空型別。c#的引用型別包括:陣列,使用者定義的類、介面、委託,object,字串。
陣列的元素,不管是引用型別還是值型別,都儲存在託管堆上。
引用型別在棧中儲存乙個引用,其實際的儲存位置位於託管堆。為了方便,本文簡稱引用型別部署在託管推上。
值型別總是分配在它宣告的地方:作為欄位時,跟隨其所屬的變數(例項)儲存;作為區域性變數時,儲存在棧上。
值型別在記憶體管理方面具有更好的效率,並且不支援多型,適合用作儲存資料的載體;引用型別支援多型,適合用於定義應用程式的行為。
c#的資料型別有三大類:成員變數值型別的預設值:1.數值型別
2.引用型別
3.指標型別(僅用於非安全**)
其中,
1.1 數值型別包括:結構型別(struct)和列舉型別(enum)
1.1.1 結構型別有:簡單型別和使用者自定義結構型別
1.1.1.1 簡單型別有:整型(byte、sbyte、long、ulong、short、ushort、 int、uint)、浮點數型別(float、double)、十進位制型別(decimal)、字元型別(char)、布林型(bool)
2.1 引用型別又包括:類(class、object、string)、介面(inte***ce)、陣列(array)、**(delegate)
2.1.1 類包括:使用者自定義的類、object基類、字串類
int型別的預設值是0
string型別的預設值是null
double型別的預設值是0.0d
integer型別的預設值是null
long型別的預設值是null
long型別的預設值是0l
float型別的預設值是0.0f
char型別的預設值是\u0000
byte型別的預設值是(byte)0
short型別的預設值是(short)0
C 中引用型別和 值型別
值型別 儲存在棧 stack 中,乙個值型別的變數其實是乙個記憶體位址,位址中儲存的就是值本身 包括c 的基本型別 用關鍵字int char float等來宣告 結構 用struct關鍵字宣告的型別 列舉 用enum關鍵字宣告的型別。引用型別 儲存在堆 heap 中,乙個引用型別的變數的值是乙個指標...
C 中引用型別和值型別
c 的值型別包括 結構體 數值型別,bool型,使用者定義的結構體 列舉,可空型別。c 的引用型別包括 陣列,使用者定義的類 介面 委託,object,字串。值型別和引用型別的區別在於,值型別的變數直接存放實際的資料,而引用型別的變數存放的則是資料的位址,即物件的引用。值型別變數直接把變數的值儲存在...
C 中引用型別和值型別
c 的值型別包括 結構體 數值型別,bool型,使用者定義的結構體 列舉,可空型別。c 的引用型別包括 陣列,使用者定義的類 介面 委託,object,字串。值型別和引用型別的區別在於,值型別的變數直接存放實際的資料,而引用型別的變數存放的則是資料的位址,即物件的引用。值型別變數直接把變數的值儲存在...