-1
以下のジェネリッククラスに対しては、Equalsメソッドを実装する必要があります。Generic型クラスのEqualityメソッドを実装していますか?
public class SomeIdentifier<T>
{
public T Id { get; set; }
public String Name { get; set; }
public override bool Equals(object obj)
{
var other = obj as SomeIdentifier<T>;
if (other == null)
{
return false;
}
return Id == other.Id && Name == other.Name;
}
}
しかし、私は両方としてId == other.Id
を比較することは許されないのですが、型Tである
私は、エラーメッセージの下に取得しています*タイプのオペランド「T」に適用することはできません演算子「==」と「T」*
これは、その型SHを前提としていouldは参照型である(その仮定の根拠はなく、OPは値型を処理することも期待できる)。これは常に参照の比較を行うため、この文脈。 – Servy
かなり正しい...代わりにEqualityComparerを使用することができます – GeorgeT
あなたは正しいです、これは別の可能性です。 –