C# System.Object
因为所有类都继承于SystenUDbject,所以这些类都可以访问该类中受保护的成员和公共成员。下面看看可供使用的成员有哪些。System.Object包含的方法如表所示。
方 法 | 返回类型 | 虚拟 | 静态 | 说明 |
Object。 | N/A | 否 | 否 | System.Object类型的构造函数,由派生类型的构造函数自动调用 |
-Object()(也称为 FinalizeO,参见下一节) | N/A | 否 | 否 | Systera.Object类型的析构函数,由派生类型的析构函数自动调 用,不能手动调用 |
Equals(object) | bool | 是 | 否 | 把调用该方法的对象与另一个对象相比,如果它们相等,就返回 true。默认的实现代码会査看其对象参数是否引用了同一个对象 (因为对象是引用类型)。如果想以不同方式来比较对象,则可以 重写该方法,例如.比较两个对象的状态 |
Equalstobject, object) | bool | 否 | 是 | 这个方法比较传送给它的两个对象,看看它们是否相等。检査时 使用了 Equals(object)方法。注意,如果两个对象都是空引用, 这个方法就返回true |
ReferenceEquals(object, object) | bool | 否 | 是 | 这个方法比较传送给它的两个对象,看看它们是不是同一个实例 的引用 |
ToStringO | string | 是 | 否 | 返回一个对应于对象实例的字符串。默认情况下,这是一个类类 型的限定名称,但可以重写它,给类类型提供合适的实现代码 |
MemberwiseClone() | object | 否 | 否 | 通过创建一个新对象实例并复制成员,以复制该对象。成员复制 不会得到这些成员的新实例。新对象的任何引用类型成员都将引 用与源类相同的对象,这个方法是受保护的,所以只能在类或派 生的类中使用 |
GetType() | System. Type | 否 | 否 | 以System/Type对象的形式返回对象的类型 |
GetHashCode() | int | 是 | 否 | 在箱要此参数的地方,用作对象的散列函数,它返回一个以压缩 形式标识对象状态的值 |
这些方法是.NET Framework中对象类型必须支持的基本方法,但我们可能从不使用其中的某些类型(或者只在特殊情况下使用,如GetHashCode())。
在利用多态性时,GetTypeO是一个有用的方法,允许根据对象的类型来执行不同的操作,而不是像通常那样,对所有对象都执行相同的操作。例如,如果函数接受一个object类型的参数(表示可以给该函数传送任何信息),就可以在遇到某些对象时执行额外的任务。组合使用Getiype()和typef(这是一个C#运算符,可以把类名转换为System.Type对象),就可以进行比较操作,如下所示:
if (myObj.GetType() == typeof(MyComplexClass))
{
// myObj is an instance of the class MyComplexClass.
}
返回的System.Type对象可以完成更多工作,这里不讨论它们。重写ToStringO方法也是非常有用的,在对象的内容可以用一个人们能理解的字符串表示时,尤其如此。
点击加载更多评论>>