一、类Object简介
1、类Object是 .NET Framework 中所有类、结构、枚举和委托的最终基类。
2、C#通常不要求类显示声明从 Object 的继承,因为继承是隐式的。
3、因为 .NET Framework 中的所有类均从 Object 派生,所以 Object 类中定义的每个方法可用于系统中的所有对象。 派生类也可以重写这些方法中的某些。
二、方法:
(1)public Type GetType()
返回与对象实例的类型对应的System.Type类型的一个对象。
Type类:表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义,以及开放或封闭构造的泛型类型。
示例:
DateTime dt1 = new DateTime(2009, 3, 3);
Console.WriteLine(dt1.GetType());
Type t = dt1.GetType();
Console.WriteLine(t);
输出结果:
(2)protected Object MemberwiseClone()
创建当前 Object 的浅表副本。引用被复制,但被引用类型中的数据不会被复制。
(3)public static bool ReferenceEquals(Object objA, Object objB)
如果指定的两个参数 引用同一个对象或指定的两个参数都为NULL,返回值为true。
(4)public static bool Equals(Object objA,Object objB)
(5)public virtual bool Equals(Object obj)
(6)public virtual string ToString()
ToString 是 .NET Framework 中主要的格式化方法。 它将对象转换为其字符串表现形式。其默认实现返回 Object 的类型的完全限定名
(7)public virtual int GetHashCode()
返回当前 Object 的哈希代码。哈希代码是一个用于在相等测试过程中标识对象的数值。 它还可以作为一个集合中的对象的索引。
GetHashCode 方法适用于哈希算法和诸如哈希表之类的数据结构。
GetHashCode 方法的默认实现不保证针对不同的对象返回唯一值。 而且,.NET Framework 不保证 GetHashCode 方法的默认实现以及它所返回的值在不同版本的 .NET Framework 中是相同的。 因此,在进行哈希运算时,该方法的默认实现不得用作唯一对象标识符。
GetHashCode 方法可以由派生类型重写。 值类型必须重写此方法,以提供适合该类型的哈希函数和在哈希表中提供有用的分布。 为了唯一性,哈希代码必须基于实例字段或属性(而非静态字段或属性)的值。
用作 Hashtable 对象中键的对象还必须重写 GetHashCode 方法,因为这些对象必须生成其各自的哈希代码。 如果用作键的对象不提供 GetHashCode 的有用实现,您可以在构造 Hashtable 对象时指定哈希代码提供程序。
(8)protected virtual void Finalize()
允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。C#禁止直接调用这个方法。
注意:以上所有方法都通过继承为所有对象提供。即使是字面值(文字常量),也支持这些方法。
例如42.ToString()虽然看起来很怪但实际上是合法的。