【发布时间】:2009-10-20 18:35:29
【问题描述】:
我有一个愚蠢的怀疑。通常“System.Object”实现“Equals”。当我实施 IEquatable 接口我可以为我的“Equals”提供自定义定义(我相信如此)。
所以教授类实现等于
class Professor:System.Object,IEquatable
由于 System.Equals 和 IEquatable 的 Equals 定义不同,为什么 C# 没有报错?因为我没有覆盖“Equals”,甚至没有使用 new 关键字隐藏“Equals”。
class Professor : IEquatable<Professor>
{
public string Name { get; set; }
public bool Equals(Professor cust)
{
if (cust == null) return false;
return cust.Name == this.Name;
}
}
【问题讨论】:
-
我建议将您的 IComparable 问题作为一个单独的问题提出,因为它更像是一个设计问题,而您的主要问题更多地与 .NET 对象模型的内容有关。