首页 > 解决方案 > 为什么不需要覆盖 Equals 方法?

问题描述

正如我们所知,C# 中的一切都是从 Object 派生的,它具有Equals方法等等。

我正在创建一个类,我发现我不必override在方法中使用关键字Equals。我不确定为什么?

public class Employee //: IEquatable<Employee>
{
    public int Emp_Id
    {
        get;
        set;
    }
    public string Emp_name
    {
        get;
        set;
    }
    public string Dept_name
    {
        get;
        set;
    }
    public bool Equals(Employee other)  //here it should use override 
    {
        return this.Emp_Id.Equals(other.Emp_Id);
    }
    public override int GetHashCode()
    {
        return this.Emp_Id.GetHashCode();
    }
}

标签: c#

解决方案


因为你没有压倒一切Equals(object)。由于类型不同,您正在创建方法的重载Equals


推荐阅读