大香蕉综合在线观看视频-日本在线观看免费福利-欧美激情一级欧美精品性-综合激情丁香久久狠狠

好房網(wǎng)

網(wǎng)站首頁 教育 > 正文

在.net中類(class)與結(jié)構(gòu)(struct)的異同","title_text":"詳述.NET里class和(struct的異同介紹 在.net中類(class)與結(jié)構(gòu)(struct)的異同","title_text":"詳述.NET里class和 struct的異同詳細(xì)情況如何)

2022-08-08 21:17:53 教育 來源:
導(dǎo)讀 想必現(xiàn)在有很多小伙伴對于在 net中類(class)與結(jié)構(gòu)(struct)的異同","title_text":"詳述 NET里class和 struct的異同方面的知識都比較

想必現(xiàn)在有很多小伙伴對于在.net中類(class)與結(jié)構(gòu)(struct)的異同","title_text":"詳述.NET里class和 struct的異同方面的知識都比較想要了解,那么今天小好小編就為大家收集了一些關(guān)于在.net中類(class)與結(jié)構(gòu)(struct)的異同","title_text":"詳述.NET里class和 struct的異同方面的知識分享給大家,希望大家會喜歡哦。 正確答案:結(jié)構(gòu)與類共享幾乎所有相同的語法,但結(jié)構(gòu)比類受到的限制更多: 盡管結(jié)構(gòu)的靜態(tài)字段可以初始化,結(jié)構(gòu)實例字段聲明還是不能使用初始值設(shè)定項。 結(jié)構(gòu)不能聲明默認(rèn)構(gòu)造函數(shù)(沒有參數(shù)的構(gòu)造函數(shù))或析構(gòu)函數(shù)。 結(jié)構(gòu)的副本由編譯器自動創(chuàng)建和銷毀,因此不需要使用默認(rèn)構(gòu)造函數(shù)和析構(gòu)函數(shù)。實際上,編譯器通過為所有字段賦予默認(rèn)值(參見默認(rèn)值表)來實現(xiàn)默認(rèn)構(gòu)造函數(shù)。結(jié)構(gòu)不能從類或其他結(jié)構(gòu)繼承。 結(jié)構(gòu)是值類型 -- 如果從結(jié)構(gòu)創(chuàng)建一個對象并將該對象賦給某個變量,變量則包含結(jié)構(gòu)的全部值。復(fù)制包含結(jié)構(gòu)的變量時,將復(fù)制所有數(shù)據(jù),對新副本所做的任何修改都不會改變舊副本的數(shù)據(jù)。由于結(jié)構(gòu)不使用引用,因此結(jié)構(gòu)沒有標(biāo)識 -- 具有相同數(shù)據(jù)的兩個值類型實例是無法區(qū)分的。C# 中的所有值類型本質(zhì)上都繼承自 ValueType,后者繼承自 Object。 編譯器可以在一個稱為裝箱的過程中將值類型轉(zhuǎn)換為引用類型。 結(jié)構(gòu)具有以下特點(diǎn): l 結(jié)構(gòu)是值類型,而類是引用類型。 l 向方法傳遞結(jié)構(gòu)時,結(jié)構(gòu)是通過傳值方式傳遞的,而不是作為引用傳遞的。 l 與類不同,結(jié)構(gòu)的實例化可以不使用 new 運(yùn)算符。 l 結(jié)構(gòu)可以聲明構(gòu)造函數(shù),但它們必須帶參數(shù)。 l 一個結(jié)構(gòu)不能從另一個結(jié)構(gòu)或類繼承,而且不能作為一個類的基。所有結(jié)構(gòu)都直接繼承自 System.ValueType,后者繼承自 System.Object。 l 結(jié)構(gòu)可以實現(xiàn)接口。 l 在結(jié)構(gòu)中初始化實例字段是錯誤的。

本文到此結(jié)束,希望對大家有所幫助。


版權(quán)說明: 本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!


標(biāo)簽:

最新文章: