c# - 为什么不需要覆盖 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();
}
}
解决方案
因为你没有压倒一切Equals(object)
。由于类型不同,您正在创建方法的重载。Equals
推荐阅读
- continuous-integration - 在声明性 Jenkins 脚本块中,我应该如何在执行命令时引用变量?
- asp.net - 我应该将身份服务器数据库与应用程序数据库合并吗?
- css - Wordpress中页脚下方的间隙
- laravel - 如果 laravel 中存在图像,如何避免编辑表单中需要图像?
- android - 为谷歌短信检索器 api 生成哈希字符串 - 'xxd' 未被识别为内部或外部命令
- xamarin - 如何管理 xamarin 表单应用程序的实时更新?
- mongodb - MongoDB中不稳定的插入率
- r - 如何自动限制 rpivottable 中的视图以符合数据保护要求
- javascript - 根据属性将对象数组拆分为三个单独的数组
- google-maps - 如何在颤动中的当前位置创建圆圈