熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#中的“裝箱”與“拆箱”

2013-11-13 10:03:32  來源: .NET編程 
   裝箱和拆箱任何值類型引用類型可以和object(對象)類型之間進行轉換裝箱轉換是指將一個值類型隱式或顯式地轉換成一個object類型或者把這個值類型轉換成一個被該值類型應用的接口類型(interfacetype)把一個值類型的值裝箱就是創建一個object實例並將這個值復制給這個object裝箱後的object對象中的數據位於堆中堆中的地址在棧中被裝箱的類型的值是作為一個拷貝賦給對象的
int i = ;
object obj = i; //隱式裝箱
object obj = object(i); //顯式裝箱
if(obj is int) //int
       ConsoleWriteLine(OK); ConsoleWriteLine(objGetType()); //SystemInt

    有兩種方式來查看包裝以後的引用對象中包裝的原始數據的類型要判斷原始類型是否是某個給定的原子類型用is如果要返回一個字符串可以用object類的GetType方法


    拆箱轉換是指將一個對象類型顯式地轉換成一個值類型或是將一個接口類型顯式地轉換成一個執行該接口地值類型注意裝箱操作可以隱式進行但拆箱操作必須是顯式的拆箱過程分成兩步首先檢查這個對象實例看它是否為給定的值類型的裝箱值然後把這個實例的值拷貝給值類型的變量比如
int i = ;
object obj = i;
int j = (int)obj;


有兩種方式來查看包裝以後的引用對象中包裝的原始數據的類型要判斷原始類型是否是某個給定的原子類型用is如果要返回一個字符串可以用object類的GetType方法


    拆箱轉換是指將一個對象類型顯式地轉換成一個值類型或是將一個接口類型顯式地轉換成一個執行該接口地值類型注意裝箱操作可以隱式進行但拆箱操作必須是顯式的拆箱過程分成兩步首先檢查這個對象實例看它是否為給定的值類型的裝箱值然後把這個實例的值拷貝給值類型的變量比如
int i = ;
object obj = i;
int j = (int)obj;
From:http://tw.wingwit.com/Article/program/net/201311/12426.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.