C#編程基礎——數據類型

目錄

值類型

引用類型

值類型與引用類型的關係

 區別

“裝箱”和“拆箱”


      C#語言是一種強類型語言,在程序中用到的變量、表達式和數值等都必須有類型。在C#中,數據類型分爲兩大類:一類是值類型、一類是引用類型。

值類型

所謂值類型就是包含一個實際數據的量。當定義一個值類型的變量是,C#會根據他所聲明的類型,以堆棧方式分配一塊大小相適應的存儲區域給這個變量,隨後對這個變量的讀寫操作就直接在這塊內存區域進行。

C#中的值類型包括:簡單類型、枚舉類型和結構類型。廢話不多說,一張表勝過千言萬語。

類別 描述
值類型 基本數據類型 整型:int 
長整形:long
浮點型:float
字符型:char
布爾型:bool
枚舉類型 枚舉:enum
結構類型 結構:struct

 

引用類型

一個引用類型的變量不存儲它們所代表的實際數據,而是存儲實際數據的引用。引用類型包括類、接口、數組、object、string 。直接上圖。

注:object是C#中所有類型的根類,string類型是一個從object類直接繼承的密封類型。

類別 描述
引用類型 基類:System.Object
字符串:string
自定義類:class
接口 接口:interface
數組 數組:int[],string[]

 

值類型與引用類型的關係

區別

一、將一個值類型變量賦給另一個值變量類型時,將複製包含的值引用類型變量的賦值只複製對對象的引用,而不復制對象本身。

二、C#中,值類型就分配在堆棧中,堆棧內存區域內保存着值類型的值,內存區域可以通過變量名來存取引用類型分配在堆中,對象分配在堆時,返回的是地址,這個地址被賦值給引用。

感覺跟VB中按值傳遞和按址傳遞有點類似,只是感覺,具體如何接下來還得查

三、值類型不可能派生出新的類型,值類型不可能包含null值。

“裝箱”和“拆箱”

C#中用“裝箱”和“拆箱”類實現值類型與引用類型之間的轉換。

一、“裝箱”就是將值類型包裝成引用類型的處理過程。

二、“拆箱”它是將一個object類型轉換成值類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章