當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# Object用法及代碼示例


Object類是所有類的基類.Net框架。它存在於係統命名空間。在 C# 中,.NET 基類庫(BCL)有一個language-specific別名,它是對象類,其完全限定名稱為System.Object。 C# 中的每個類都直接或間接派生自 Object 類。如果一個類沒有擴展任何其他類,那麽它是 Object 類的直接子類,如果擴展另一個類,那麽它是間接派生的。因此,Object 類方法可用於所有 C# 類。因此,Object 類充當任何 C# 程序中繼承層次結構的根。 Object 類的主要目的是為派生類提供低級服務。

C# 中有兩種類型,即 Reference types and Value types 。通過使用 System.ValueType 類,值類型隱式繼承對象類。 System.ValueType 類使用更適合值類型的實現來重寫對象類中的虛擬方法。在其他編程語言中,int、double、float 等內置類型不具有任何麵向對象的屬性。要模擬內置類型的麵向對象行為,必須將它們顯式包裝到對象中。但在 C# 中,我們不需要這種包裝,因為存在從 System.ValueType 繼承的值類型,而 System.ValueType 又進一步從 System.Object 繼承。因此,在 C# 中,值類型的工作方式也與引用類型類似。引用類型通過使用其他引用類型直接或間接繼承對象類。

上圖解釋:在這裏,您可以看到位於類型層次結構頂部的 Object 類。1級2級是參考類型。類1是直接繼承Object類,而類2是使用類1間接繼承。Struct1是一個值類型,通過System.ValueType類型。

例子:

C#


// C# Program to demonstrate
// the Object class
using System;
using System.Text;
class Geeks {
    // Main Method
    static void Main(string[] args)
    {
        // taking object type
        Object obj1 = new Object();
        // taking integer
        int i = 10;
        // taking Type type and assigning
        // the value as type of above
        // defined types using GetType
        // method
        Type t1 = obj1.GetType();
        Type t2 = i.GetType();
        // Displaying result
        Console.WriteLine("For Object obj1 = new Object();");
        // BaseType is used to display
        // the base class of current type
        // it will return nothing as Object
        // class is on top of hierarchy
        Console.WriteLine(t1.BaseType);
        // It will return the name class
        Console.WriteLine(t1.Name);
        // It will return the
        // fully qualified name
        Console.WriteLine(t1.FullName);
        // It will return the Namespace
        // By default Namespace is System
        Console.WriteLine(t1.Namespace);
        Console.WriteLine();
        Console.WriteLine("For String str");
        // BaseType is used to display
        // the base class of current type
        // it will return System.Object
        // as Object class is on top
        // of hierarchy
        Console.WriteLine(t2.BaseType);
        // It will return the name class
        Console.WriteLine(t2.Name);
        // It will return the
        // fully qualified name
        Console.WriteLine(t2.FullName);
        // It will return the Namespace
        // By default Namespace is System
        Console.WriteLine(t2.Namespace);
    }
}

輸出:

For Object obj1 = new Object();

Object
System.Object
System

For String str
System.ValueType
Int32
System.Int32
System

Constructor

.object-table { border-collapse: 崩潰;寬度:100%; } .object-table td { 邊框:1px 實心#5fb962; text-align:左!重要;內邊距:8px; } .object-table th { 邊框:1px 實心#5fb962;內邊距:8px; } .object-table tr>th{ 背景顏色: #c6ebd9; vertical-align:中間; } .object-table tr:nth-child(奇數) { 背景顏色: #ffffff; }

構造函數 說明
Object() 初始化 Object 類的新實例。此構造函數由派生類中的構造函數調用,但也可用於直接創建 Object 類的實例。

Methods

C# Object 類中共有 8 個方法,如下所示:

方法 說明
Equals(Object) 確定指定對象是否等於當前對象。
Equals(Object, Object) 確定指定的對象實例是否被視為相等。
Finalize() 允許對象在被垃圾收集回收之前嘗試釋放資源並執行其他清理操作。
GetHashCode() 用作默認的哈希函數。
GetType() 獲取當前實例的類型。
MemberwiseClone() 創建當前對象的淺拷貝。
ReferenceEquals(Object, Object) 判斷指定的Object實例是否是同一個實例。
ToString() 返回表示當前對象的字符串。

要點:

  • C# 類不需要聲明從 Object 類的繼承,因為繼承是隱式的。
  • Object 類中定義的每個方法在係統中的所有對象中都可用,就像係統中的所有類一樣。.NET框架都是從 Object 類派生的。
  • 派生類可以並且確實重寫 Object 類的 Equals、Finalize、GetHashCode 和 ToString 方法。
  • 對類型進行裝箱和拆箱的過程在內部會導致性能成本。使用type-specific類來處理頻繁使用的類型可以提高性能成本。


相關用法


注:本文由純淨天空篩選整理自Anshul_Aggarwal大神的英文原創作品 C# | Object Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。