概述:System.Object類是.NET Framework類庫中所有類的基類
構(gòu)造函數(shù):
public Object()
說明:通過子類的構(gòu)造函數(shù)來調(diào)用,但是也能直接使用它來生產(chǎn)Object對象。
方法:
public virtual bool Equals(Object obj)
判斷對象obj是否與當(dāng)前對象相對。
此方法是一個virtual方法,一般在子類中應(yīng)該重寫該方法。
該方法根據(jù)對象的類型不同,分為以下幾種情況:
1:如果對象是簡單值類型,比如原生數(shù)據(jù)類型,則相等的定義為:類型相同且值相等。
2:對于結(jié)構(gòu)類型,相等意味著結(jié)構(gòu)內(nèi)部的字段的值要相等。注意:對于結(jié)構(gòu),相等性判斷是判斷結(jié)構(gòu)內(nèi)的字段是否相等。
3:對于引用類型,該方法判斷兩個對象是否是同一個對象,實(shí)際上就是在方法內(nèi)部調(diào)用了ReferenceEqual方法,因此,對于引用類型的相等性判斷,一般應(yīng)該在子類中重寫該方法。
下表中給出了幾種類型會默認(rèn)調(diào)用的Equals方法
類型 | 默認(rèn)調(diào)用的Equals方法 | 說明 |
Object類的子類 | Object.Equals(Object) | 比較引用 |
Structure | ValueType.Equals | 比較字段的值 |
Enumeration | Enum.Equals | |
Delegate | MulticastDelegate.Equals | |
Interface | Object.Equals(Object) |
對于Equals(Object)方法來說,下列語句必須為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指向的對象沒有改名,x.Equals(y)的值必須一直相同。
x.Equals(null) == false
注意:Equals方法不能拋異常。
實(shí)現(xiàn)IComparable接口的類型必須重寫Equals方法;
重寫Equals方法的類型必須也重寫GetHashCode方法;否則hash表可能無法正常工作。
如果重載了“==”運(yùn)算符,也必須重新Equals方法。
如果對引用類型使用“==”運(yùn)算符,默認(rèn)為比較引用的地址是否相同,即是否指向同一個對象。
public static bool Equals(Object objA, Object objB)
判斷兩個對象是否相等。
如果objA和objB指向同一個對象,或兩者都為null,返回true;
如果兩者里面一個為null,另一個不是,返回false;
如果兩個對象都不為null,且不是指向同一個對象,該方法會自動調(diào)用objA.Equals(objB)方法。
protected virtual void Finalize()
在該對象被垃圾回收器回收前執(zhí)行特定的釋放資源和清理工作。
public virtual int GetHashCode()
hashcode是一個數(shù)字,一般用于在對象進(jìn)行相等性判斷是來標(biāo)識對象,也可用于在集合中作為對象的索引。
默認(rèn)的GetHashCode方法并不保證能為所有的對象生成唯一的Hash值。
public Type GetType()
返回當(dāng)前實(shí)例的類型信息,如:Int32,String,Person等。
protected Object MemberwiseClone()
創(chuàng)建一個當(dāng)前對象的淺表副本。
此方法會創(chuàng)建一個新的對象,并將源對象中的非靜態(tài)字段的值復(fù)制到新對象中,但要注意的是,如果字段是引用類型,此方法只會復(fù)制引用,也就是說,兩個對象中的該引用字段會指向同一個對象。
public static bool ReferenceEquals(Object objA, Object objB)
判斷兩個引用是否指向同一個對象;特別的,如果兩個引用均為null,結(jié)果也為true。
另外,如果參數(shù)是值類型,基于自動裝箱的原因,結(jié)果總是為false。
public virtual string ToString()
返回一個字符串,默認(rèn)返回當(dāng)前對象的類型信息。一般會在子類中重寫。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。
名稱欄目:System.Object類-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://chinadenli.net/article18/pspdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、企業(yè)網(wǎng)站制作、網(wǎng)頁設(shè)計公司、網(wǎng)站導(dǎo)航、商城網(wǎng)站、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容