一,引用类型相等比较:
共四种比较方法:
1:ReferenceEquals()方法,静态方法,测试两个引用是否指定同一个对象。而且认为null等于null。
1Class1 x,y;
2x = new Class1();
3y = new Class1();
4bool B1 = ReferenceEquals(null,null);//true
5bool B2 = ReferenceEquals(null,x);//false
6bool B3 = ReferenceEquals(x,y);//false
2x = new Class1();
3y = 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()的概念还有点模糊,希望在应用中能够理解。