C# System.Object
因為所有類都繼承于SystenUDbject,所以這些類都可以訪問該類中受保護的成員和公共成員。下面看看可供使用的成員有哪些。System.Object包含的方法如表所示。
方 法 | 返回類型 | 虛擬 | 靜態(tài) | 說明 |
Object。 | N/A | 否 | 否 | System.Object類型的構造函數(shù),由派生類型的構造函數(shù)自動調用 |
-Object()(也稱為 FinalizeO,參見下一節(jié)) | N/A | 否 | 否 | Systera.Object類型的析構函數(shù),由派生類型的析構函數(shù)自動調 用,不能手動調用 |
Equals(object) | bool | 是 | 否 | 把調用該方法的對象與另一個對象相比,如果它們相等,就返回 true。默認的實現(xiàn)代碼會査看其對象參數(shù)是否引用了同一個對象 (因為對象是引用類型)。如果想以不同方式來比較對象,則可以 重寫該方法,例如.比較兩個對象的狀態(tài) |
Equalstobject, object) | bool | 否 | 是 | 這個方法比較傳送給它的兩個對象,看看它們是否相等。檢査時 使用了 Equals(object)方法。注意,如果兩個對象都是空引用, 這個方法就返回true |
ReferenceEquals(object, object) | bool | 否 | 是 | 這個方法比較傳送給它的兩個對象,看看它們是不是同一個實例 的引用 |
ToStringO | string | 是 | 否 | 返回一個對應于對象實例的字符串。默認情況下,這是一個類類 型的限定名稱,但可以重寫它,給類類型提供合適的實現(xiàn)代碼 |
MemberwiseClone() | object | 否 | 否 | 通過創(chuàng)建一個新對象實例并復制成員,以復制該對象。成員復制 不會得到這些成員的新實例。新對象的任何引用類型成員都將引 用與源類相同的對象,這個方法是受保護的,所以只能在類或派 生的類中使用 |
GetType() | System. Type | 否 | 否 | 以System/Type對象的形式返回對象的類型 |
GetHashCode() | int | 是 | 否 | 在箱要此參數(shù)的地方,用作對象的散列函數(shù),它返回一個以壓縮 形式標識對象狀態(tài)的值 |
這些方法是.NET Framework中對象類型必須支持的基本方法,但我們可能從不使用其中的某些類型(或者只在特殊情況下使用,如GetHashCode())。
在利用多態(tài)性時,GetTypeO是一個有用的方法,允許根據(jù)對象的類型來執(zhí)行不同的操作,而不是像通常那樣,對所有對象都執(zhí)行相同的操作。例如,如果函數(shù)接受一個object類型的參數(shù)(表示可以給該函數(shù)傳送任何信息),就可以在遇到某些對象時執(zhí)行額外的任務。組合使用Getiype()和typef(這是一個C#運算符,可以把類名轉換為System.Type對象),就可以進行比較操作,如下所示:
if (myObj.GetType() == typeof(MyComplexClass))
{
// myObj is an instance of the class MyComplexClass.
}
返回的System.Type對象可以完成更多工作,這里不討論它們。重寫ToStringO方法也是非常有用的,在對象的內(nèi)容可以用一個人們能理解的字符串表示時,尤其如此。
點擊加載更多評論>>