为什么不需要覆盖等于方法?

时间:2018-10-03 14:44:16

标签: c#

我们知道C#中的所有内容都源自具有Equals方法以及其他几种方法的Object。

我正在创建一个类,发现不需要在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();
    }
}

1 个答案:

答案 0 :(得分:4)

因为您没有覆盖Equals(object)。由于类型不同,您正在创建Equals方法的重载