C#的基类都有哪些方法
2015-10-12 09:25
281 查看
之前面试有被问到这个问题,平时没去注意,回答的不好,在此整理一下。
在C#中,Object类型是所有类型的根。Object类型中一共有8个方法,重载的方法没有算进来:
构造函数
ToString()函数
GetHashCode函数
Equals函数
ReferenceEquals函数
Finalize函数
GetType()函数
MemberWiseClone()函数
下面一一来看看这些方法。
1、构造函数 public Object()
直接使用new Object()可以用来创建对象;如果非Object类型,则在该类型的构造函数被调用时,该函数自动被调用。
2、ToString()方法:是获取对象字符串表示的一种快捷方式。当只需要快速获取对象的内容,以进行调试时,就可以使用这个方法。
3、GetHashCode()方法:用作特定类型的哈希函数,快速生成一个与对象的值相对应的数字(哈希代码)。此方法适用于哈希算法和诸如哈希表之类的数据结构。
4、Equals()和ReferenceEquals()方法:
Equals用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。
ReferenceEquals判断两个引用是否引用类的同一个实例。从描述也可以看出来,如果参数是值类型,则会装箱,比较的是装箱后的对象实例。
==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
5、Finalize()方法:允许对象在垃圾回收回收该对象之前尝试释放资源并执行其它清理操作。
6、GetType()方法:获取当前实例的确切运行时类型。
7、MemberWiseClone()方法:创建一个浅表副本,方法是创建一个新对象,然后将当前对象的非静态字段复制到该新对象。如果字段是值类型的,则对该字段执行逐位复制。如果字段是引用类型,则复制引用但不复制引用的对象;因此,原始对象及其复本引用同一对象。
在C#中,Object类型是所有类型的根。Object类型中一共有8个方法,重载的方法没有算进来:
构造函数
ToString()函数
GetHashCode函数
Equals函数
ReferenceEquals函数
Finalize函数
GetType()函数
MemberWiseClone()函数
下面一一来看看这些方法。
1、构造函数 public Object()
直接使用new Object()可以用来创建对象;如果非Object类型,则在该类型的构造函数被调用时,该函数自动被调用。
2、ToString()方法:是获取对象字符串表示的一种快捷方式。当只需要快速获取对象的内容,以进行调试时,就可以使用这个方法。
3、GetHashCode()方法:用作特定类型的哈希函数,快速生成一个与对象的值相对应的数字(哈希代码)。此方法适用于哈希算法和诸如哈希表之类的数据结构。
4、Equals()和ReferenceEquals()方法:
Equals用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。
ReferenceEquals判断两个引用是否引用类的同一个实例。从描述也可以看出来,如果参数是值类型,则会装箱,比较的是装箱后的对象实例。
==用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
5、Finalize()方法:允许对象在垃圾回收回收该对象之前尝试释放资源并执行其它清理操作。
6、GetType()方法:获取当前实例的确切运行时类型。
7、MemberWiseClone()方法:创建一个浅表副本,方法是创建一个新对象,然后将当前对象的非静态字段复制到该新对象。如果字段是值类型的,则对该字段执行逐位复制。如果字段是引用类型,则复制引用但不复制引用的对象;因此,原始对象及其复本引用同一对象。
相关文章推荐
- Part 36 to 39 Talking about Delegates in c#
- Part 34 to 35 Talking about multiple class inheritance in C#
- Part 32 Abstract classes in c#
- Part 30 to 31 Talking about Interfaces in c#
- Part 53 to 55 Talking about Reflection in C#
- Part 52 Attributes in C#
- Part 48 to 51 Talking about Access Modifiers in C#
- C#_WinForm接收命令行参数
- C# 如何执行bat文件 传参数
- c# 程序后台运行
- C# 中String和string的区别
- Part 100 Func delegate in c#
- Part 99 Lambda expression in c#
- 【转帖】C#与C Windows API数据类型对应关系
- 如何编写一个编译c#控制台应用程序的批处理程序
- VS2010命令行编译C#和VC项目
- C# 四个字节十六进制数和单精度浮点数之间的相互转化
- C#: 启动画面设计
- C# 属性、索引
- c# 做的登录窗体,登录成功后当前登录Form关闭,打开Main窗体,但Main窗体点关闭按钮后程序仍在进程怎么办