日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C# 结构体与类的区别

發(fā)布時(shí)間:2025/4/16 C# 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 结构体与类的区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

c#中的結(jié)構(gòu)體類型?

struct 類型是一種值類型,通常用來(lái)封裝小型相關(guān)變量組,例如,矩形的坐標(biāo)或庫(kù)存商品的特征。下面的示例顯示了一個(gè)簡(jiǎn)單的結(jié)構(gòu)聲明。

public struct PostalAddress
{
// Fields, properties, methods and events go here...
}

結(jié)構(gòu)與類共享幾乎所有相同的語(yǔ)法,但結(jié)構(gòu)比類受到的限制更多:

盡管結(jié)構(gòu)的靜態(tài)字段可以初始化,結(jié)構(gòu)實(shí)例字段聲明還是不能使用初始值設(shè)定項(xiàng)。

結(jié)構(gòu)不能聲明默認(rèn)構(gòu)造函數(shù)(沒(méi)有參數(shù)的構(gòu)造函數(shù))或析構(gòu)函數(shù)。

結(jié)構(gòu)的副本由編譯器自動(dòng)創(chuàng)建和銷毀,因此不需要使用默認(rèn)構(gòu)造函數(shù)和析構(gòu)函數(shù)。實(shí)際上,編譯器通過(guò)為所有字段賦予默認(rèn)值(參見(jiàn)默認(rèn)值表)來(lái)實(shí)現(xiàn)默認(rèn)構(gòu)造函數(shù)。結(jié)構(gòu)不能從類或其他結(jié)構(gòu)繼承。

結(jié)構(gòu)是值類型 -- 如果從結(jié)構(gòu)創(chuàng)建一個(gè)對(duì)象并將該對(duì)象賦給某個(gè)變量,變量則包含結(jié)構(gòu)的全部值。復(fù)制包含結(jié)構(gòu)的變量時(shí),將復(fù)制所有數(shù)據(jù),對(duì)新副本所做的任何修改都不會(huì)改變舊副本的數(shù)據(jù)。由于結(jié)構(gòu)不使用引用,因此結(jié)構(gòu)沒(méi)有標(biāo)識(shí) -- 具有相同數(shù)據(jù)的兩個(gè)值類型實(shí)例是無(wú)法區(qū)分的。C# 中的所有值類型本質(zhì)上都繼承自 ValueType,后者繼承自 Object。

編譯器可以在一個(gè)稱為裝箱的過(guò)程中將值類型轉(zhuǎn)換為引用類型。

結(jié)構(gòu)具有以下特點(diǎn):

結(jié)構(gòu)是值類型,而類是引用類型

向方法傳遞結(jié)構(gòu)時(shí).結(jié)構(gòu)是通過(guò)傳值方式傳遞的,不是作為引用方式傳遞.

與類不同,結(jié)構(gòu)的實(shí)例化可以不使用new運(yùn)算符.

結(jié)構(gòu)可以聲明構(gòu)造函數(shù),但他們必須帶參數(shù)

一個(gè)結(jié)構(gòu)不能從另一個(gè)結(jié)構(gòu)或類繼承,而且不能作為一個(gè)類的基。所有結(jié)構(gòu)都直接繼承自 System.ValueType,后者繼承自 System.Object。

結(jié)構(gòu)可以實(shí)現(xiàn)接口。

在結(jié)構(gòu)中初始化實(shí)例字段是錯(cuò)誤的。

轉(zhuǎn)載于:https://www.cnblogs.com/justForMe/archive/2011/02/27/1966373.html

總結(jié)

以上是生活随笔為你收集整理的C# 结构体与类的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。