Equals 和 ==
总结:
1. “==” 用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true。
而在比较引用时,如果引用指向内存中的同一对象(堆上的同一内容),结果为true。
2. “Equals” 用于比较两个对象的内容是否相等,即堆上的内容是否相同。
equals 方法是String类从它的超类Object中继承的。
3. “ReferenceEquals”用于确定指定的Object对象是否是相同的实例,即引用是否指向内存中同一个对象。
不像Equals方法和相等运算符,ReferenceEquals 方法不能被重写。 为此,如果要测试两个对象引用的平等,且不确定 Equals 方法的实现时,可以调用ReferenceEquals 方法。 但是,请注意,如果 objA 和 objB 是值类型,则它们先装箱,然后传递给 ReferenceEquals 方法。