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执行之后,返回新建对象的一个引用。
相关文章
- C# 基类型和派生类型之间的转型
- C#遍历XmlDocument对象所有节点名称、类型、属性(Attribute)
- 走进c#(类型转换的一个类Object对象转int String double byte[] Stream)
- js获取object类型所有的键值对
- C#读取文件夹下所有指定类型,并返回相应类型数据
- C#中的扩展方法(向已有类添加方法,但无需创建新的派生类型)
- C# 获得目录下所有文件或指定文件类型文件(包含所有子文件夹)
- C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型
- 第4章 类型基础 -- 4.1 所有类型都从System.Object派生
- C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型