所有类型都从Object类型派生

本文深入解析了CLR(Common Language Runtime)的对象模型,介绍了所有.NET类型最终如何从object类型派生,以及这些类型所具备的基本方法如Equals、GetHashCode、ToString等。此外,还详细解释了在CLR中创建对象的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


CLR要求每一个类型都最终从object类型派生,如下:

class Typer {}   ===   class Typer :object {}

上面是完全相等的。

所有的类型最终从object派生,每一个类型都有一组最基本的方法:

Equals:如果两个对象相等,返回True
GetHashCode:返回对象值的一个哈希码
ToString:默认返回类型的完整名称,int等类型被重写
GetType:返回调用的那个对象的类型

此外,从object派生类型能访问受保护的方法

MemberWiseClone:返回一个新实类
Finalize:虚方法,在内存回收之前调用

CLR要求所有的对象都用NEW操作符来创建:

1、计算类型及其所有的基类型,还有一些额外的成员
2、从堆分配指定类型要求的字节数
3、调用类型的实例构造器,向其传入在对New的调用中指定的任何实参,

     每一个类型构造器在调用时,都要负责初始化这个类型定义的实例字段,最终调用object的构造器。

new执行之后,返回新建对象的一个引用。
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值