System.Object 類別

本文提供此 API 參考文件的補充備註。

類別 Object 是所有 .NET 類別的最終基類;它是類型階層的根目錄。

由於 .NET 中的所有類別都是衍生自 Object,因此類別中 Object 定義的每個方法都可在系統中的所有物件中使用。 衍生類別可以並覆寫其中一些方法,包括:

  • Equals:支援對象之間的比較。
  • Finalize:在自動回收物件之前,執行清除作業。
  • GetHashCode:產生對應至 物件值的數位,以支援哈希表的使用。
  • ToString:製造人類可讀取的文字字串,描述 類別的實例。

語言通常不需要類別來宣告繼承, Object 因為繼承是隱含的。

效能考量

如果您要設計類別,例如必須處理任何類型的物件集合,您可以建立接受 類別實例的 Object 類別成員。 不過,Boxing 和 unboxing 類型的程式會產生效能成本。 如果您知道新類別會經常處理某些實值型別,您可以使用兩種策略之一,將 Boxing 的成本降到最低。

  • 建立接受類型的一 Object 般方法,以及一組類型特定方法多載,以接受您預期類別經常處理的每個實值類型。 如果類型特定方法存在接受呼叫參數類型,則不會發生 Boxing,而且會叫用類型特定的方法。 如果沒有符合呼叫參數類型的方法自變數,則會將參數 Boxed 並叫用一般方法。
  • 設計您的類型及其成員以使用 泛型。 當您建立 類別的實例並指定泛型類型自變數時,Common Language Runtime 會建立封閉式泛型類型。 泛型方法為類型特定,而且可以叫用,而不需將呼叫參數 Boxing。

雖然有時需要開發接受和傳回 Object 型別的一般用途類別,但您也可以提供類型特定的類別來處理常用型別來改善效能。 例如,提供設定和取得布爾值的特定類別,可消除 Boxing 和 unboxing 布爾值的成本。