C#裝箱和拆箱

         碰到這個問題兩次了,翻了兩次車的狀況下總結一下裝箱和拆箱,這裏呢涉及到兩個東西,值類型還有引用類型數組

值類型是什麼:C#中的多數基本類型都是值類型,值類型包括簡單類型,枚舉類型,結構類型性能

引用類型是什麼:引用類型表示指向數據的指針或引用,可存儲對實際數據的引用。引用類型spa

在內存中的存儲位置僅包含堆上對象的地址的引用引用類型包括類、接口、數組、字符串,引用類指針

型爲null時,表示沒有引用任何對象。code

        好了,瞭解了上面這倆個東西以後就能夠看看什麼是裝箱和拆箱了對象

裝箱和拆箱的過程會佔用內存資源,所以都要儘可能的避免使用裝箱和拆箱,blog

裝箱:將一個值類型轉換成引用類型,那麼這個過程就是裝箱接口

int i=1;      //聲明一個int型的變量i
object obj=i;   //將這個值裝箱進一個對象應用

拆箱:將一個引用類型轉換成值類型,那麼這個過程就是拆箱內存

int i=1;
object obj=i;
int j=(int) obj;   //執行拆箱操做

裝箱拆箱的過程都會極大的破壞程序的性能,我以前用的多的都是泛型操做,沒去深刻的理解這個概念,用的少,也算是補償本身的一點不足之處吧資源

那麼拆箱跟裝箱的損失能夠經過使用泛型集合類來補償,能夠用List<T>和Dictory<Tkey,Tvalue>泛型來代替ArrayList和HashTable,即便是List<object>

也會比ArrayList性能好

相關文章
相關標籤/搜索