1. 程式人生 > >C#的基類都有哪些方法

C#的基類都有哪些方法

之前面試有被問到這個問題,平時沒去注意,回答的不好,在此整理一下。

在C#中,Object型別是所有型別的根。Object型別中一共有8個方法,過載的方法沒有算進來:

建構函式

ToString()函式

GetHashCode函式

Equals函式

ReferenceEquals函式

Finalize函式

GetType()函式

MemberWiseClone()函式

下面一一來看看這些方法。

1、建構函式 public Object()

直接使用new Object()可以用來建立物件;如果非Object型別,則在該型別的建構函式被呼叫時,該函式自動被呼叫。

2、ToString()方法:是獲取物件字串表示的一種快捷方式。當只需要快速獲取物件的內容,以進行除錯時,就可以使用這個方法。

3、GetHashCode()方法:用作特定型別的雜湊函式,快速生成一個與物件的值相對應的數字(雜湊程式碼)。此方法適用於雜湊演算法和諸如雜湊表之類的資料結構。

4、Equals()和ReferenceEquals()方法:

Equals用來檢測兩個物件是否相等,即兩個物件的內容是否相等,區分大小寫。

ReferenceEquals判斷兩個引用是否引用類的同一個例項。從描述也可以看出來,如果引數是值型別,則會裝箱,比較的是裝箱後的物件例項。

==用於比較引用和比較基本資料型別時具有不同的功能:

比較基本資料型別,如果兩個值相同,則結果為true

而在比較引用時,如果引用指向記憶體中的同一物件,結果為true

5、Finalize()方法:允許物件在垃圾回收回收該物件之前嘗試釋放資源並執行其它清理操作。

6、GetType()方法:獲取當前例項的確切執行時型別。

7、MemberWiseClone()方法:建立一個淺表副本,方法是建立一個新物件,然後將當前物件的非靜態欄位複製到該新物件。如果欄位是值型別的,則對該欄位執行逐位複製。如果欄位是引用型別,則複製引用但不復制引用的物件;因此,原始物件及其複本引用同一物件。