Equals和"=="

不管是Equals还是“==”都倾向于:对于引用类型看是否指向同一对象;对于值类型,判断类型的值是否相等。

对于 对象来说,地址不同的情况下,就算对象的值相同,两个对象也不会相等。如果想要两个对象在对象的值相等的情况下使得两个对象相等,就应该重载Equals运算符。

public override bool Equals(object obj)
{
return this.Name == (obj as EqualsTestClass).Name;
}

在用object声明对象去获取同一个子类实例时:equals是相同的,"=="是不同的。

object i = 2;
object j = 2;
Console.WriteLine(i.Equals(j));  //true
Console.WriteLine(i == j);          //false

重写Equals方法时也应该实现一个类型安全的接口IEquatable<T>,同时重写GetHashCode方法。

posted @   Wen_Chen  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示