どちらのインターフェースもオブジェクトを比較して等しいように見えますが、それらの主な違いは何ですか?
20974 次
5 に答える
203
IEquatable
2 つのオブジェクトが等しいかどうかをテストします。
IComparable
比較されるオブジェクトに完全な順序付けを課します。
たとえば、IEquatable
は 5 が 7 と等しくないことを 示します。IComparable
は 5 が 7 の前にあることを示します。
于 2010-03-09T15:22:00.350 に答える
23
IEquatable<T>
平等のために。
IComparable<T>
注文するため。
于 2010-03-09T16:15:46.170 に答える
12
グレッグDの答えに加えて:
部分的な順序付けが理にかなっていて、ゼロを返すという理由だけで消費者にそれを推測させたい場合は、実装せずに実装することができますが、これはIComparable
オブジェクトが等しいことを意味しません(並べ替えの目的以外)。IEquatable
CompareTo()
于 2010-03-09T15:30:29.993 に答える
8
IEquatableの MSDN ページに記載されているとおり:
IComparable インターフェイスは
CompareTo
、実装する型のインスタンスの並べ替え順序を決定するメソッドを定義します。IEquatable インターフェイスはEquals
、実装する型のインスタンスが等しいかどうかを判断するメソッドを定義します。
Equals
対。CompareTo
于 2010-03-09T15:22:57.817 に答える