C#的裝箱和拆箱

來源:互聯網
上載者:User

標籤:布爾   http   nbsp   1.5   技術分享   建立   font   參考型別   枚舉   


       談到裝箱拆箱,大概的意思就是實值型別和參考型別的相互裝換——實值型別到參考型別叫裝箱,反之就叫拆箱。

1.類型的理解
       既然是類型之間的相互轉換,那首先就要說清楚類型。我們都知道Sysyem.Object類型是所有內建類型的基類。那麼如何區分實值型別和參考型別呢?最簡單的一個區分標準就是所有的實值型別都繼承自System.Value,也就是說所有繼承自System.ValueType的類型都是實值型別,而其他類型都是參考型別。
簡單的說:
     (1)實值型別:整型:Int;長整型:long;浮點型:float;字元型:char;布爾型:bool;枚舉:enum;結構:struct;它們統一繼承 自System.ValueType。
   (2)參考型別:數組,使用者定義的類、介面、委託,object,字串等。

2.裝箱和拆箱的深入理解

                                                                                Object obj = 1;
       這行語句將整型常量1賦給object類型的變數obj;我們知道常量1是實值型別,實值型別是要放在棧上的,而object是參考型別,它需要放在堆上;要把實值型別放在堆上就需要執行一次裝箱操作。

要在運行時成功拆箱實值型別,被拆箱的項必須是對一個對象的引用,該對象是先前通過裝箱該實值型別的執行個體建立的。 

下面舉一個例子:

 

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.