C#系列之万物之父中的方法

文章详细介绍了Object类中的关键方法,包括静态方法Equals和ReferenceEquals在比较对象时的不同,以及成员方法GetType和MemberwiseClone的功能。此外,还讨论了Equals、GetHashCode和ToString作为虚方法的重要性,以及如何通过重写这些方法来定制对象的行为。对于浅拷贝的概念,文章指出其在处理引用类型时的局限性。
摘要由CSDN通过智能技术生成

目录

1.object中的静态方法

2.object中的成员方法

3.object中的虚方法


1.object中的静态方法

①静态方法Equals判断两个对象是否相等。

最终的判断权交给左侧对象的Equals方法,不论值类型还是引用类型都是按照左侧对象Equals方法的规则来进行比较。

Console.WriteLine(Object.Equals(1,1));

②静态方法ReferenceEquals

比较两个对象是否是相同的引用,主要是用来比较引用类型的对象。值类型的对象返回始终是false。

比较引用类型时两种都是比较他们的房间是否相同,object是所有类型的基类,所以可以省略不写。

左侧方法指的是虚方法,微软默认替我们引用了虚方法所以Equals可以进行比较。

2.object中的成员方法

 普通方法GetType,该方法的主要作用就是获取对象运行时的类型Type,通过Type结合发射相关知识点可以做很多关于对象的操作。

Test t=new Test();
Type ty=t.GetType();

普通方法MemberwiseClone 

该方法用于获取对象的浅拷贝对象,口语化的意思就是会返回一个新对象。

class Test

{

public int i=1;

public Test t2=new Test2();

public Test Clone()

 {

      return MemberwiseClone() as Test;

 }

}

浅拷贝克隆的不干净,引用类型与克隆体指向一个地址,所以,当改变克隆体值时,值类型不改变但是引用类型会改变。

3.object中的虚方法

①虚方法Equals

我们可以重写该方法,定义自己比较相等的规则。

②虚方法GetHashCode

该方法是获取对象的哈希码。

③虚方法ToString

该方法用于返回当前对象代表的字符串,我们可以重写它定义我们自己的对象转字符串规则。

//默认打印命名空间和类名的方法
Random r=new Random();
Console.WriteLine(r);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nicole Potter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值