位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

C# System.Object

提问人:刘团圆发布时间:2020-12-07

因为所有类都继承于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方法也是非常有用的,在对象的内容可以用一个人们能理解的字符串表示时,尤其如此。


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部