国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

值類型裝箱問題

2019-11-14 16:30:52
字體:
來源:轉載
供稿:網友

MSDN:裝箱是將值類型轉換為 object 類型或由此值類型實現的任何接口類型的過程。

C# In Depth 的2.3.4中提到“為一個類型的值調用ToString,Equals或GetHashCode方法時,如果該類型沒有覆蓋這些方法,也會發生裝箱。

分析:

1.ToString

    如果值類型沒有重寫ToString方法,會調用ValueType類中的ToString方法

public override String ToString(){    return this.GetType().ToString();}

 

    這里,this.GetType()會繼續調用Object.cs類的GetType()方法,為了調用GetType()方法,

CLR需要使用指向一個類型對象的指針,這個指針只能通過對該值類型裝箱獲得。

    因此,在值類型沒用重寫ToString方法時,為該值類型調用ToString方法是會進行裝箱操作。

2.Equals

    如果值類型沒有重寫Equals方法,會調用ValueType類中的Equals方法

public override bool Equals (Object obj){ }

 

     這時會將值類型轉換為Object類型,會發生裝箱操作。

3.GetHashCode

    貌似會發生裝箱。未完待續。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 雷山县| 灵寿县| 于都县| 静安区| 广东省| 邵武市| 仁怀市| 修武县| 和静县| 遵义县| 林口县| 英超| 弥渡县| 聂拉木县| 广昌县| 台东市| 黄石市| 南康市| 精河县| 漳平市| 诏安县| 德惠市| 仲巴县| 唐海县| 麻江县| 礼泉县| 南漳县| 宜章县| 沐川县| 耒阳市| 广德县| 娱乐| 宜宾市| 宁陵县| 青龙| 安新县| 奈曼旗| 嘉定区| 泾川县| 丽江市| 安化县|