System.Object類-創(chuàng)新互聯(lián)

概述:System.Object類是.NET Framework類庫(kù)中所有類的基類

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比上高網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式上高網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋上高地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

構(gòu)造函數(shù):

public Object()

說明:通過子類的構(gòu)造函數(shù)來調(diào)用,但是也能直接使用它來生產(chǎn)Object對(duì)象。

方法:

public virtual bool Equals(Object obj)

判斷對(duì)象obj是否與當(dāng)前對(duì)象相對(duì)。

此方法是一個(gè)virtual方法,一般在子類中應(yīng)該重寫該方法。

該方法根據(jù)對(duì)象的類型不同,分為以下幾種情況:

1:如果對(duì)象是簡(jiǎn)單值類型,比如原生數(shù)據(jù)類型,則相等的定義為:類型相同且值相等。

2:對(duì)于結(jié)構(gòu)類型,相等意味著結(jié)構(gòu)內(nèi)部的字段的值要相等。注意:對(duì)于結(jié)構(gòu),相等性判斷是判斷結(jié)構(gòu)內(nèi)的字段是否相等。

3:對(duì)于引用類型,該方法判斷兩個(gè)對(duì)象是否是同一個(gè)對(duì)象,實(shí)際上就是在方法內(nèi)部調(diào)用了ReferenceEqual方法,因此,對(duì)于引用類型的相等性判斷,一般應(yīng)該在子類中重寫該方法。

下表中給出了幾種類型會(huì)默認(rèn)調(diào)用的Equals方法

類型默認(rèn)調(diào)用的Equals方法說明
Object類的子類Object.Equals(Object)比較引用
StructureValueType.Equals比較字段的值
EnumerationEnum.Equals
DelegateMulticastDelegate.Equals
InterfaceObject.Equals(Object)

對(duì)于Equals(Object)方法來說,下列語(yǔ)句必須為true。(下例中的引用類型x,y和z均不為null)

x.Equals(x) == true(例外,x為浮點(diǎn)數(shù))

x.Equals(y) == y.Equals(x)

若干x和y都是NaN,則x.Equals(y) == true

如果(x.Equals(y) && y.Equals(z)) == true,則x.Equals(z) == true

只有x和y指向的對(duì)象沒有改名,x.Equals(y)的值必須一直相同。

x.Equals(null) == false

注意:Equals方法不能拋異常。

實(shí)現(xiàn)IComparable接口的類型必須重寫Equals方法;

重寫Equals方法的類型必須也重寫GetHashCode方法;否則hash表可能無法正常工作。

如果重載了“==”運(yùn)算符,也必須重新Equals方法。

如果對(duì)引用類型使用“==”運(yùn)算符,默認(rèn)為比較引用的地址是否相同,即是否指向同一個(gè)對(duì)象。

public static bool Equals(Object objA, Object objB)

判斷兩個(gè)對(duì)象是否相等。

如果objA和objB指向同一個(gè)對(duì)象,或兩者都為null,返回true;

如果兩者里面一個(gè)為null,另一個(gè)不是,返回false;

如果兩個(gè)對(duì)象都不為null,且不是指向同一個(gè)對(duì)象,該方法會(huì)自動(dòng)調(diào)用objA.Equals(objB)方法。

protected virtual void Finalize()

在該對(duì)象被垃圾回收器回收前執(zhí)行特定的釋放資源和清理工作。

public virtual int GetHashCode()

hashcode是一個(gè)數(shù)字,一般用于在對(duì)象進(jìn)行相等性判斷是來標(biāo)識(shí)對(duì)象,也可用于在集合中作為對(duì)象的索引。

默認(rèn)的GetHashCode方法并不保證能為所有的對(duì)象生成唯一的Hash值。

public Type GetType()

返回當(dāng)前實(shí)例的類型信息,如:Int32,String,Person等。

protected Object MemberwiseClone()

創(chuàng)建一個(gè)當(dāng)前對(duì)象的淺表副本。

此方法會(huì)創(chuàng)建一個(gè)新的對(duì)象,并將源對(duì)象中的非靜態(tài)字段的值復(fù)制到新對(duì)象中,但要注意的是,如果字段是引用類型,此方法只會(huì)復(fù)制引用,也就是說,兩個(gè)對(duì)象中的該引用字段會(huì)指向同一個(gè)對(duì)象。

public static bool ReferenceEquals(Object objA, Object objB)

判斷兩個(gè)引用是否指向同一個(gè)對(duì)象;特別的,如果兩個(gè)引用均為null,結(jié)果也為true。

另外,如果參數(shù)是值類型,基于自動(dòng)裝箱的原因,結(jié)果總是為false。

public virtual string ToString()

返回一個(gè)字符串,默認(rèn)返回當(dāng)前對(duì)象的類型信息。一般會(huì)在子類中重寫。

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。

名稱欄目:System.Object類-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://muchs.cn/article18/pspdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、企業(yè)網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站導(dǎo)航、商城網(wǎng)站、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司