C#学习,对象的相等比较

一,引用类型相等比较:

共四种比较方法:

1:ReferenceEquals()方法,静态方法,测试两个引用是否指定同一个对象。而且认为null等于null。

1Class1 x,y;
2= new Class1();
3= new Class1();
4bool B1 = ReferenceEquals(null,null);//true
5bool B2 = ReferenceEquals(null,x);//false
6bool B3 = ReferenceEquals(x,y);//false

2:虚拟的Equals()方法,虚拟的,可以重写,按值比较对象。

3:静态的Equals()方法,两个参数,对他们进行比较(和虚拟Equals()区别)。

4:比较运算符==,可以看作严格值比较和严格引用比较之间的中间选项。

二,值类型相等比较:

 理论上值比较可以和饮用比较用相同的方法,只不过值类型需要一个装箱的过程。但是,在装箱过程中,每个值都是单独装箱的,

所以用RefernceEqual()比较值类型的话总是返回false,是没有意义的。

总结:通过了解饮用类型和值类型,可以理解上面的工作原理。现在对Equals()的概念还有点模糊,希望在应用中能够理解。

原文地址:https://www.cnblogs.com/ratgtttjh/p/1277673.html