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

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

什么時候使用值類型?什么時候使用引用類型?

2019-11-17 02:24:11
字體:
來源:轉載
供稿:網友

什么時候使用值類型?什么時候使用引用類型?

CLR支持兩種類型:引用類型和值類型

關于引用類型,你必須要知道的:

  1. 內存必須從托管堆分配
  2. 堆上分配的每個對象都有一些額外成員,這些成員必須初始化
  3. 對象中的其他字節總是設為零
  4. 從托管堆分配對象時,可能會強制執行一次垃圾回收

關于值類型,你需要了解的:

  1. 輕量級類型
  2. 一般在線程棧上分配(有時也可作為字段嵌入到引用類型的對象中)
  3. 值類型實例變量中不包含指向實例的指針,相反變量中包含了實例本身的字段
  4. 值類型的實例不受垃圾回收器的控制

值類型有時能提供更好的性能,具體的說,除非滿足以下全部條件,否則不應將類型聲明為值類型,

也就是說在滿足下面全部條件的情況事才考慮將類型聲明為值類型:

  • 類型具有基元類型的行為。也就是說,是十分簡單的類型,沒有成員會修改類型的任何實例字段
  • 類型不需要從其他類型繼承,也不派生出其他任何類型(因為值類型都是隱式密封的)

另外類型實例大小也在考慮范圍內,

因為實參默認以傳值方式傳遞,造成對值類型實例中的字段進行復制,對性能造成影響。

同樣被定義為返回一個值類型的方法在返回時,實例中的字段會復制到調用者分配的內存中,對性能造成影響。

所以要將類型聲明為值類型,除了滿足以上全部條件,還必須滿足一下任意條件:

  • 類型的實例較小
  • 類型的實例較大(但不作為方法實參傳遞,也不從方法返回),切記


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 温泉县| 贡觉县| 河间市| 万荣县| 潼关县| 广南县| 科技| 平江县| 宁化县| 冕宁县| 齐齐哈尔市| 东辽县| 台东县| 班玛县| 密山市| 玉龙| 康乐县| 平江县| 景宁| 宁德市| 临猗县| 枝江市| 拜城县| 平湖市| 云龙县| 南宫市| 大庆市| 喀喇| 绥德县| 博爱县| 连城县| 阳曲县| 西盟| 遂平县| 阿克| 武邑县| 邻水| 安溪县| 邛崃市| 六安市| 义马市|