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方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】