国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - .NET 中的裝箱與拆箱實現過程

.NET 中的裝箱與拆箱實現過程

2019-10-15 10:57asp.net教程網 ASP.NET教程

本文分別介紹裝箱(boxing)與拆箱(unboxing)的實現過程,感興趣的朋友可以了解下

先看下面的代碼: 

復制代碼代碼如下:

int tempi = 1; 
object o = tempi; 
double tempd = (double) o; 


編譯時可以通過,但運行時卻報如下錯誤: 
System.InvalidCastException: 指定的轉換無效。 

這是因為,當對一個對象進行拆箱時,轉型的結果必須是它原來未裝箱的類型。此處必須先轉換為int類型,才能再轉換為double類型。其正確格式如下: 

復制代碼代碼如下:

int tempi = 32; 
object o = tempi; 
double tempd = (double)(int) o; 


在.NET框架中,裝箱(boxing)通常由以下三步組成: 
1.從托管堆中為新生成的引用類型對象分配內存。分配的內存大小為被裝箱的值類型實例本身的大小,再加上為新生成的引用類型添加的一個方法表指針和一個SyncBlockIndex。 
2.將值類型實例的字段拷貝到托管堆上新分配對象的內存中。 
3.返回托管堆中新分配對象的地址。這樣值類型實例也變成了一個引用類型對象。 

而拆箱(unboxing)過程則如下: 
1.如果要拆箱的對象為null,將會拋出一個NullReferenceException異常。 
2.如果該引用指向的對象不是一個期望的值類型的已裝箱對象,則拆箱失敗,并拋出一個InvalidCastException異常(如本文剛開始的部分)。 
3.一個指向包含在已經裝箱對象中值類型部分的指針被返回。該指針指向的值類型對于引用類型對象通常所具有的附加成員(即一個方法表指針和一個SyncBlockIndex)一無所知。實際上,該指針指向的是已經裝箱對象中的未裝箱部分(Microsoft.NET 框架程序設計<修訂版>)。

對于第3點,可以使用上面的例子來幫助理解。首先定義值類型變量tempi,它在內存中占用4個字節,裝箱之后,其變成引用對象的同時,增加了一個方法表指針和一個SyncBlockIndex。對于引用類型而言,只需要傳一個“引用類型”的地址,就可以得到其值、方法表指針和SyncBlockIndex。在拆箱時,傳遞的是其“值”的地址(未裝箱的部分),即一個“int(Int32)類型”的地址(引用),它只允許讀4個字節。而double類型是8個字節,因此隱式的轉換是會報錯的,需要先將其轉換成int類型后,才能再轉換為double類型。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美一区二区三区免费 | 精品成人av | 久久精品播放 | 日韩精品二区 | 国产特级毛片aaaaaa毛片 | 蜜桃视频网站在线观看 | 免费观看一区二区三区 | 国产美女久久 | 国产精品久久久久久久久 | 男人的天堂2018 | 国产欧美日韩综合精品一区二区 | 日本黄色录像 | 欧美久久综合 | 中文字幕在线观看不卡视频 | 国产精品久久久久久久午夜片 | 久久国产一区二区 | 色五月激情综合网 | 免费a网站 | 精品久久久久久久 | 天堂√在线观看一区二区 | 一区二区三区不卡视频 | 亚洲一区中文字幕 | 国产日韩精品在线观看 | 久久99精品久久久久久6194 | 久久一日本道色综合久久 | 久草福利资源 | 国产精品毛片无码 | 国产精品久久久久久久久久久久 | 日韩精品久久 | 一区二区三区四区精品 | 中文字幕亚洲欧美 | 日韩在线视频一区 | 九九九色| 亚洲成人一级片 | 亚洲va中文字幕 | 亚洲精品一| 国产精品久久久久久中文字 | 能看的av网站 | 久久久久久av | 亚洲 中文 欧美 日韩 在线观看 | 少妇一区二区三区免费观看 |