位置:首页 > 软件操作教程 > 编程开发 > 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)
返回顶部