最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入c# 類和結(jié)構(gòu)的區(qū)別總結(jié)詳解

 更新時(shí)間:2013年05月22日 18:04:27   作者:  
本篇文章是對(duì)c#中類和結(jié)構(gòu)的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
類和結(jié)構(gòu)的區(qū)別:
1.一個(gè)是引用類型一個(gè)是值類型
Class是引用類型,繼承自System.Object類
Struct是值類型,繼承自System.ValueType類,因此不具有多態(tài)性
因?yàn)榻Y(jié)構(gòu)是值類型,所以結(jié)構(gòu)之間賦值可以創(chuàng)建新的結(jié)構(gòu),復(fù)制包含結(jié)構(gòu)的變量時(shí),講復(fù)制所有的數(shù)據(jù),對(duì)新的副本所作的修改都不會(huì)改變舊副本的數(shù)據(jù),而類是引用類型,類之間的賦值只是復(fù)制引用。
2. 繼承性的區(qū)別
Class支持繼承,可以繼承自類和接口,是完全可擴(kuò)展的,除非聲明sealed。否則類可以繼承自其它的類的接口,自身也能被繼承。
Struct沒(méi)有繼承性,不能從另外一個(gè)結(jié)構(gòu)或者類繼承,本身也不能被繼承,雖然結(jié)構(gòu)沒(méi)有明確地用sealed聲明,但是結(jié)構(gòu)師隱式的sealed。Struct支持接口繼承。
3.內(nèi)部結(jié)構(gòu):
結(jié)構(gòu)

沒(méi)有默認(rèn)的(無(wú)參數(shù))構(gòu)造函數(shù),但是可以添加構(gòu)造函數(shù),結(jié)構(gòu)可以聲明構(gòu)造函數(shù),但是他們必須是帶參數(shù)的。
有默認(rèn)的構(gòu)造函數(shù)
沒(méi)有析構(gòu)函數(shù)
有析構(gòu)函數(shù)
沒(méi)有abstract和sealed(因?yàn)椴荒芾^承)
可以使用abstract和sealed
不能有protected修飾符,不可以聲明protected,virtual,sealed和override成員
可以聲明protected,virtual,sealed,override成員
可以不使用new初始化
必須使用new初始化,struct在聲明時(shí)就進(jìn)行了初始化過(guò)程,所有的成員變量均默認(rèn)為0或null
在結(jié)構(gòu)中初始化實(shí)例字段是錯(cuò)誤的
Struct變量使用完之后就自動(dòng)解除內(nèi)存分配
Class實(shí)例有垃圾回收機(jī)制來(lái)保證內(nèi)存的回收處理
Struct創(chuàng)建的對(duì)象復(fù)制簡(jiǎn)單,直接以等號(hào)連接即可
Class對(duì)象復(fù)制分為淺復(fù)制和深復(fù)制,必須經(jīng)過(guò)特別的方法來(lái)完成復(fù)制
我們可以簡(jiǎn)單地理解為class是一個(gè)可以動(dòng)的機(jī)器,有行為,有多臺(tái),有繼承,而struct是一個(gè)零件箱,組合了不同結(jié)構(gòu)的零件,其實(shí)class和struct最本質(zhì)的區(qū)別在于class是引用類型,內(nèi)存分配在托管堆,而struct是值類型,內(nèi)存分配在線程堆棧上,此差異導(dǎo)致了上述的所有的不同。
4.如何選擇類和結(jié)構(gòu)
(1)實(shí)現(xiàn)一個(gè)主要勇于存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu)時(shí),可以考慮結(jié)構(gòu)
(2)Struct變量占用堆棧的空間,因此適用于數(shù)據(jù)量相對(duì)小的場(chǎng)合,堆棧的空間有限,對(duì)于大量的邏輯的對(duì)象,創(chuàng)建類要比創(chuàng)建結(jié)構(gòu)好一些。
(3)結(jié)構(gòu)數(shù)組具有更高的效率
(4)結(jié)構(gòu)表示如點(diǎn),矩形和顏色這樣輕量的對(duì)象,例如,如果聲明一個(gè)含有1000個(gè)點(diǎn)的對(duì)象數(shù)組,則將為引用每個(gè)對(duì)象分配附加的內(nèi)存,在此情況下,結(jié)構(gòu)的成本較低。
(5)在表現(xiàn)抽象和多級(jí)別的對(duì)象層次時(shí),類是最好的選擇
(6)在大多數(shù)情況下,該類型只是一些數(shù)據(jù)時(shí),結(jié)構(gòu)師最佳的選擇。

相關(guān)文章

最新評(píng)論

咸丰县| 朝阳县| 图们市| 嵩明县| 临潭县| 湟中县| 犍为县| 怀宁县| 无极县| 云浮市| 阿拉尔市| 库尔勒市| 名山县| 西平县| 博湖县| 亳州市| 渝北区| 微山县| 秦皇岛市| 天气| 云和县| 东城区| 连云港市| 泰安市| 德阳市| 垦利县| 伊吾县| 山东省| 绥江县| 泽州县| 陵川县| 华安县| 彭州市| 台东市| 疏勒县| 新营市| 连山| 闻喜县| 盐池县| 贡嘎县| 杂多县|