System.Object的一些方法

下面将简要总结每一个方法的做用
一、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中惟一没有在本书的其余地方详细论述的方法。不须要讨论这个方法,由于它在概念上至关简单,只是复制对象,返回一个对副本的引用(对于值类型,就是一个装箱的引用)。注意,获得的副本是一个浅表复制,即它复制了类中的全部值类型。若是类包含内嵌的引用,就只复制引用,而不复制引用的对象。这个方法是受保护的,因此不能用于复制外部的对象。该方法不是虚拟的,因此不能重写它的实现代码。
相关文章
相关标签/搜索