System.Object是所有类型的基类,任何类型都直接或间接继承自System.Object类。没有指定基类的类型都默认继承于System.Object,从而具有Object的基本特性,这些特性
主要包括:
通过GetType方法,获取对象类型信息。
通过Equals、ReferenceEquals和==,实现对象判等。
通过ToString方法,获取对象字符串信息 ,默认返回对象类型全名。
通过MemberwiseClone方法,实现对象实例的浅拷贝。
通过GetHashCode方法,获取对象的值的散列码。
通过Finalize方法,在垃圾回收时进行资源清理。
1.ToString解析
ToString是一个虚方法,用于返回对象的字符串表示,在Object类型的实现可以表示为:
public virtual string ToString(){ return this.GetType().FullName.ToString(); }
可见,默认情况下,对象调用ToString方法将返回类型全名称,也就是命名空间加类型名全称。在通常的情况下,ToString方法提供了在子类中重新覆写基类方法而获取对象当前值的字符串信息的合理途径。2.GetType解析
![ContractedBlock.gif](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
.NET中,用于在运行期获取类型Type实例的方法并非只有Object.GetType方法,Type.GetType静态方法和typeof运算符也能完成同样的操作,不过在应用上有些区别,
主要是: 1.Type.GetType是非强类型方法;而typeof运算符支持强类型。
2.Type.GetType支持运行时跨程序集反射,以解决动态引用;而typeof只能支持静态引用。
另外,对于在运行期获取Type实例的方法,还可参考以下几种常见的方式
主要包括: 1.利用System.Reflection.Assembly的非静态方法GetType或GetTypes。
2.利用System.Reflection.Module的非静态方法GetType或GetTypes。
3.其他
Equals静态方法、虚方法和ReferenceEquals方法用于对象判等。
GetHashCode方法,用于在类型中提供哈希值,以应用于哈希算法或哈希表,不过值得注意的是对Equals方法和GetHashCode方法的覆写要保持统一,因为两个对象的值相等,其哈希码也应该相等,否则仅覆写Equals而不改变GetHashCode,会导致编译器抛出警告信息。
Memberwise方法,用于在对象克隆时实现对象的浅拷贝
Finalize方法,用于在垃圾回收时实现资源清理