C#中new操作符的工作機(jī)制
使用new操作符來(lái)創(chuàng)建對(duì)象,其背后到底發(fā)生了什么?
有一個(gè)父類Animal,Dog派生于Animal。
class Program { static void Main(string[] args) { Dog dog = new Dog(); Console.WriteLine("我能調(diào)用老祖宗Object的實(shí)例方法GetType,顯示結(jié)果為:" + dog.GetType() ); Console.WriteLine("我能拿到父類的屬性Age=" + dog.Age); Console.WriteLine("我當(dāng)然能拿到自己的公共字段_weight=" + dog._weight); } } public class Animal { public int Age { get; set; } public Animal(){} } public class Dog : Animal { public decimal _weight; public Dog(){} }
雖然創(chuàng)建了子類Dog的實(shí)例,但通過(guò)dog實(shí)例能調(diào)用"老祖宗"System.Object的實(shí)例方法,也能獲取到父類的公共屬性Age的值,并且所有的實(shí)例字段值為其類型的默認(rèn)值。
new操作符做的事情大致包括:
- 計(jì)算Dog類以及所有父類實(shí)例字段所占的字節(jié)數(shù)
- 計(jì)算Dog類以及所有父類"類型對(duì)象指針"和"同步塊索引"所占的字節(jié)數(shù)
- 根據(jù)字節(jié)數(shù),托管堆分配內(nèi)存
- 先調(diào)用所有父類的構(gòu)造函數(shù),最后調(diào)用Dog的構(gòu)造函數(shù)。在這過(guò)程中,初始化所有實(shí)例字段,字段值為字段類型的默認(rèn)值或構(gòu)造函數(shù)實(shí)參值;初始化"類型對(duì)象指針"和"同步塊索引"成員
- 把新建的Dog實(shí)例的堆地址賦值給棧變量dog
- 通過(guò)new創(chuàng)建的托管堆對(duì)象最終由GC回收
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
詳解C#如何利用爬蟲(chóng)技術(shù)實(shí)現(xiàn)快捷租房
做為一個(gè)碼農(nóng),大部分都集中在一二線城市,所以租房也就無(wú)可避免,面對(duì)如今五花八門(mén)的租房信息,往往很難找到合適的房子。本文教你如何利用爬蟲(chóng)技術(shù)實(shí)現(xiàn)快捷租房,感興趣的可以了解一下2022-09-09C#實(shí)現(xiàn)獲取IIS站點(diǎn)及虛擬目錄信息的方法
這篇文章主要介紹了C#實(shí)現(xiàn)獲取IIS站點(diǎn)及虛擬目錄信息的方法,可實(shí)現(xiàn)獲取IIS站點(diǎn)信息及物理路徑等功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10C#結(jié)合AForge實(shí)現(xiàn)攝像頭錄像
最近由于興趣學(xué)習(xí)了下在C#上使用AForge錄制攝像頭視頻并壓縮編碼??傮w上來(lái)說(shuō)這個(gè)第三方.net視覺(jué)開(kāi)發(fā)庫(kù)還是比較穩(wěn)定的2017-09-09unity實(shí)現(xiàn)物體延時(shí)出現(xiàn)
這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)物體延時(shí)出現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04C#實(shí)現(xiàn)GZip壓縮和解壓縮入門(mén)實(shí)例
C#中用GZip對(duì)數(shù)據(jù)壓縮和解壓縮非常方便,但是當(dāng)我第一次拿到這個(gè)類的時(shí)候卻感覺(jué)很迷茫,無(wú)從下手2014-04-04C#如何將查詢到的數(shù)據(jù)庫(kù)里面的數(shù)據(jù)輸出到textbox控件
這篇文章主要介紹了C#如何將查詢到的數(shù)據(jù)庫(kù)里面的數(shù)據(jù)輸出到textbox控件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07