程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 類型與通用語言運行時:System.Object,通用system.object

類型與通用語言運行時:System.Object,通用system.object

編輯:C#入門知識

類型與通用語言運行時:System.Object,通用system.object


CLR 要求每個類型最終都要繼承自 System.Object 類型

1 //隱式繼承 Object 2 class Employee { 3 ... 4 } 5 6 //顯示繼承繼承 Object 7 class Employee : System.Object { 8 ... 9 } 類型定義(C#)描述

 

System.object 的公有方法

Equals:如果兩個對象具有相同的值,方法返回 true

GetHashCode:方法返回對象的值的散列碼。如果一個對象被用作散列表的一個鍵值,那麼該對象的類型應該重寫 GetHashCode().

ToString:重寫該方法使其返回一個表示對象狀態的字符串

GetType:方法返回一個類型為繼承自Type的對象實例,其標識了該方法所屬對象的類型。返回的 Type 對象可以和反射類一起使用來獲得類型的元數據信息。(* GetType 方法是一個非虛方法,這可以防止一個類通過重寫該方法而隱藏它的類型,從而破壞類型安全)

 

System.object 的受保護方法

MemberwiseClone:非虛方法,它創建一個新的實例,並將其字段設置為和this對象的字段相同,最後返回新創建的實例引用。關於該方法的更多信息,請參見

Finalize:虛方法,當垃圾收集器判定某個對象為可回收的垃圾時,垃圾收集器會在對象內存被回收前調用此方法。那些內存回收時需要資源清理的類型應該重寫該方法。

 

CLR 要求所有的對象都要用 new 操作符來創建(產生 newobj IL 指令)。下面的語句展示了怎樣創建一個 Employee 對象:

Employee e = new Employee("ConstructorParaml");

下面是 new 操作符所執行的工作:

在 new 完成了這些所有操作後,它將返回一個指向新創建對象的引用。在上面的例子中,該引用被保存在變量 e 中,其類型為 Employee。

沒有和 new 操作符對應的 delete 操作符。也就是說,在CLR中,我們無法顯示釋放對象所占用的資源。CLR 引入一種垃圾收集環境來自動檢測哪些不再被使用或訪問的對象,並自動釋放它們的內存。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved