下面將簡要總結每一個方法的做用
一、ToString()方法:是獲取對象的字符串表示的一種便捷方式。當只須要快速獲取對象的內容,以用於調試時,就能夠使用這個方法。在數據的格式化方面,它提供的選擇很是少:例如,日期在原則上能夠表示爲許多不一樣的格式,但DateTime.ToString()沒有在這方面提供任何選擇。若是須要更專業的字符串表示,例如考慮用戶的格式化配置或文化(區域),就應實現IFormattable接口。
二、GetHashTable()方法:若是對象放在名爲映射(也稱爲散列表或字典)的數據結構中,就能夠使用這個方法。處理這些結構的類使用該方法肯定把對象放在結構的什麼地方。若是但願把類用做字典的一個鍵,就須要重寫GetHashTable()方法。
三、Equals()(兩個版本)和ReferenceEquals()方法:若是把3個用於比較對象相等性的不一樣方法組合起來,就說明.NET Framework在比較相等性方面有至關複雜的模式。這3個方法和比較運算符==在使用方式上有微妙的區別。並且,在重寫帶一個參數的虛擬Equals()方法時也有一些限制,由於System.Collections命名空間中的一些基類要調用該方法,並但願它以特定的方式執行。
四、Finalize()方法:它最接近C++風格的析構函數,在引用對象被回收,以清理資源時調用。Finalize()方法的Object執行代碼實際上什麼也沒有作,於是被垃圾收集器忽略。若是對象擁有對未託管資源的引用,則在該對象被刪除時,就須要刪除這些引用,此時通常要重寫Finalize()。垃圾收集器不能直接重寫該方法,由於它只負責託管的資源,只能依賴用戶提供的Finalize()。
五、GetType()方法:這個方法返回從System.Type派生的類的一個實例。這個對象能夠提供對象所屬類的更多信息,包括基本類型、方法、屬性等。System.Type還提供了.NET反射技術的入口。
六、MemberwiseClone()方法:這是System.Object中惟一沒有在本書的其餘地方詳細論述的方法。不須要討論這個方法,由於它在概念上至關簡單,只是複製對象,返回一個對副本的引用(對於值類型,就是一個裝箱的引用)。注意,獲得的副本是一個淺表複製,即它複製了類中的全部值類型。若是類包含內嵌的引用,就只複製引用,而不復制引用的對象。這個方法是受保護的,因此不能用於複製外部的對象。該方法不是虛擬的,因此不能重寫它的實現代碼。