私は愚かな疑いがあります。一般に "System.Object"は "Equals"を実装しています。私は IEquatableインターフェイスを実装するとき私は私の "等しい"にカスタム定義(私はそう信じる)を与えることができます。.NETの "equals"の内部
異なるSystem.Equalsの定義、およびIEquatableの等号があるので、その教授クラスの実装が
class Professor:System.Object,IEquatable
に等しい、なぜC#のレポートのエラーではありませんでした?.Because私は「等しい」オーバーライドしておりません新しいキーワードを使って "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のオブジェクトモデル。 – Welbog
ok私はそれを行うでしょう – user193276