この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

IEquatable<T> インターフェイス

 

インスタンスの等価性判断を目的とする型固有のメソッドを作成するために値型またはクラスで実装する、汎用のメソッドを定義します。

名前空間:   System
アセンブリ:  mscorlib (mscorlib.dll 内)

public interface IEquatable<T>

型パラメーター

T

比較するオブジェクトの型。

名前説明
System_CAPS_pubmethodEquals(T)

現在のオブジェクトが、同じ型の別のオブジェクトと等しいかどうかを示します。

このインターフェイスは、値を持つことができますされるした処理を表します (例、数値と文字列クラス) の型によって実装されます。 値型またはクラスで実装する、Equalsインスタンスの等価性を決定するために適切な種類に固有のメソッドを作成します。

System_CAPS_noteメモ

IComparable<T>インターフェイスを定義、CompareToメソッドを実装する型のインスタンスの並べ替え順序を決定します。 IEquatable<T>インターフェイスを定義、Equalsメソッドを実装する型のインスタンスが等しいかどうかを決定します。

IEquatable<T>インターフェイスがなどのジェネリック コレクション オブジェクトで使用がDictionary<TKey, TValue>List<T>、およびLinkedList<T>などのメソッドに等しいかどうかをテストするときContainsIndexOfLastIndexOf、およびRemoveです。 ジェネリック コレクション内に保存されている任意のオブジェクトを実装する必要があります。

実装時の注意:

型パラメーターを置き換える、IEquatable<T>はこのインターフェイスを実装する型を持つインターフェイスです。

実装する場合IEquatable<T>の基本クラスの実装を上書きすることも必要があります。Object.Equals(Object)GetHashCodeできるように、これらの動作に一貫性のあるのは、IEquatable<T>.Equalsメソッドです。 オーバーライドする場合Object.Equals(Object)、静的への呼び出しで、オーバーライドされた実装が呼び出されますもEquals(System.Object, System.Object)クラスのメソッドです。 さらに、必要がありますをオーバー ロードする、op_Equalityop_Inequality演算子。 これにより、すべてのテストが等しいかどうかが一貫性のある結果を返すことです。

System_CAPS_noteメモ

上書きする方法についてEquals(Object)を参照してください、Object.Equals(Object)資料です。

値型の場合は常に実装するIEquatable<T>オーバーライドとObject.Equals(Object)パフォーマンスが向上します。 Object.Equalsボックスの値型と等しいかどうかの 2 つの値を比較するためにリフレクションに依存しています。 両方の実装EqualsのオーバーライドとObject.Equals一貫性のある結果を返す必要があります。

実装する場合IEquatable<T>、実装する必要がありますもIComparable<T>場合は、型のインスタンスを順次または並べ替えことができます。 型を実装する場合IComparable<T>、常にも実装する必要がありますIEquatable<T>です。

例を参照して、IEquatable<T>.Equalsメソッドです。

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
2.0 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
Windows Phone
8.1 以降で使用可能
トップに戻る
表示: