位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# System.Object

提問人:劉團(tuán)圓發(fā)布時間:2020-12-07

因?yàn)樗蓄惗祭^承于SystenUDbject,所以這些類都可以訪問該類中受保護(hù)的成員和公共成員。下面看看可供使用的成員有哪些。System.Object包含的方法如表所示。

方 法

返回類型

虛擬

靜態(tài)

說明

Object。

N/A

System.Object類型的構(gòu)造函數(shù),由派生類型的構(gòu)造函數(shù)自動調(diào)用

-Object()(也稱為 FinalizeO,參見下一節(jié))

N/A

Systera.Object類型的析構(gòu)函數(shù),由派生類型的析構(gòu)函數(shù)自動調(diào) 用,不能手動調(diào)用

Equals(object)

bool

把調(diào)用該方法的對象與另一個對象相比,如果它們相等,就返回

true默認(rèn)的實(shí)現(xiàn)代碼會査看其對象參數(shù)是否引用了同一個對象 (因?yàn)閷ο笫且妙愋?。如果想以不同方式來比較對象,則可以 重寫該方法,例如.比較兩個對象的狀態(tài)

Equalstobject, object)

bool

這個方法比較傳送給它的兩個對象,看看它們是否相等。檢査時 使用了 Equals(object)方法。注意,如果兩個對象都是空引用,

這個方法就返回true

ReferenceEquals(object,

object)

bool

這個方法比較傳送給它的兩個對象,看看它們是不是同一個實(shí)例

的引用

ToStringO

string

返回一個對應(yīng)于對象實(shí)例的字符串。默認(rèn)情況下,這是一個類類

型的限定名稱,但可以重寫它,給類類型提供合適的實(shí)現(xiàn)代碼

MemberwiseClone()

object

通過創(chuàng)建一個新對象實(shí)例并復(fù)制成員,以復(fù)制該對象。成員復(fù)制

不會得到這些成員的新實(shí)例。新對象的任何引用類型成員都將引

用與源類相同的對象,這個方法是受保護(hù)的,所以只能在類或派

生的類中使用

GetType()

System. Type

System/Type對象的形式返回對象的類型

GetHashCode()

int

在箱要此參數(shù)的地方,用作對象的散列函數(shù),它返回一個以壓縮

形式標(biāo)識對象狀態(tài)的值

    這些方法是.NET Framework中對象類型必須支持的基本方法,但我們可能從不使用其中的某些類型(或者只在特殊情況下使用,如GetHashCode())。

    在利用多態(tài)性時,GetTypeO是一個有用的方法,允許根據(jù)對象的類型來執(zhí)行不同的操作,而不是像通常那樣,對所有對象都執(zhí)行相同的操作。例如,如果函數(shù)接受一個object類型的參數(shù)(表示可以給該函數(shù)傳送任何信息),就可以在遇到某些對象時執(zhí)行額外的任務(wù)。組合使用Getiype()和typef(這是一個C#運(yùn)算符,可以把類名轉(zhuǎn)換為System.Type對象),就可以進(jìn)行比較操作,如下所示:

if (myObj.GetType() == typeof(MyComplexClass))

{

    // myObj is an instance of the class MyComplexClass.

}

    返回的System.Type對象可以完成更多工作,這里不討論它們。重寫ToStringO方法也是非常有用的,在對象的內(nèi)容可以用一個人們能理解的字符串表示時,尤其如此。


繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部