C#之拆箱,裝箱

來源:互聯網
上載者:User

標籤:c#   拆箱   裝箱   類型轉換   

          C#的資料類型分為三類,值類型,參考型別和指標類型。指標類型只能用於不安全模式,而值類型和參考型別通過拆箱和裝箱機制可以相互轉換,通過中間的object類型,所以C#的所有種類直接或間接地從object類種類派生而來。

值類型

    值類型資料存放區在棧中,棧用於存放固定長度的資料,分為簡單類型,結構類型和枚舉類型。

結構類型:把不同類型的資料群組合在一起,便於使用。跟類相似,包含資料成員和函數成員的資料結構,類類型是一種參考型別。結構類型用關鍵字Struct定義,可以嵌套定義。

枚舉類型:成員只能是整數類型,枚舉類型主要用於表示一組邏輯上相關項目的組合,使用關鍵字Enum來定義。

結構類型的變數值包含了所有成員的值,枚舉類型只能列舉出個各成員。預設第一個元素對應的整數值為0.

枚舉類型比無格式的整數的優勢:

使代碼易於維護。

代碼清晰,允許用描述的名稱表示整數值

代碼易於鍵入。

參考型別

參考型別資料存放區在堆中,堆是由new分配的記憶體,一般由程式員分配釋放。一般速度比較慢,容易產生記憶體片段大多數複雜的C#資料類型,包括我們自己聲明的類都是引用類,它們分配在堆中。

該類型的變數不直接儲存所包含的值,指向它要儲存的值,儲存實際資料的引用值的地址。

參考型別有數組,類,委託和介面4中。

裝箱和拆箱

值類型和應用類型之間是可以轉換的,這種轉換的實現,依賴於一種機制:裝箱(Boxing)和裝箱(unboxing).拆箱和裝箱對任何類型的值來說最終都可以看作object類型。

裝箱:將一個值類型隱式的轉換為Object類型,把值類型的值裝箱,也就是建立一個object執行個體並將值賦給object

Int a=10;

Object obj =a;

拆箱:把Object類型顯示的轉換成一個值類型。先檢驗對象執行個體,將值從執行個體中複製出來,賦給值類型變數。

Int k=10;

Object obj=k;

Int j =(int)obj;

C#之拆箱,裝箱

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.