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

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

 

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

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

public interface IEquatable<T>

型パラメーター

T

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

名前説明
System_CAPS_pubmethodEquals(T)

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

This interface is implemented by types whose values can be equated (for example, the numeric and string classes). A value type or class implements the M:System.IEquatable`1.Equals(`0) method to create a type-specific method suitable for determining equality of instances.

System_CAPS_noteメモ

The T:System.IComparable`1 interface defines the M:System.IComparable`1.CompareTo(`0) method, which determines the sort order of instances of the implementing type. The T:System.IEquatable`1 interface defines the M:System.IEquatable`1.Equals(`0) method, which determines the equality of instances of the implementing type.

The T:System.IEquatable`1 interface is used by generic collection objects such as T:System.Collections.Generic.Dictionary`2, T:System.Collections.Generic.List`1, and T:System.Collections.Generic.LinkedList`1 when testing for equality in such methods as Contains, IndexOf, LastIndexOf, and Remove. It should be implemented for any object that might be stored in a generic collection.

実装時の注意:

Replace the type parameter of the T:System.IEquatable`1 interface with the type that is implementing this interface.

If you implement T:System.IEquatable`1, you should also override the base class implementations of M:System.Object.Equals(System.Object) and M:System.Object.GetHashCode so that their behavior is consistent with that of the M:System.IEquatable`1.Equals(`0) method. If you do override M:System.Object.Equals(System.Object), your overridden implementation is also called in calls to the static Equals(System.Object, System.Object) method on your class. In addition, you should overload the op_Equality and op_Inequality operators. This ensures that all tests for equality return consistent results.

System_CAPS_noteメモ

For information on overriding M:System.Object.Equals(System.Object), see the M:System.Object.Equals(System.Object) article.

For a value type, you should always implement T:System.IEquatable`1 and override M:System.Object.Equals(System.Object) for better performance. M:System.Object.Equals(System.Object) boxes value types and relies on reflection to compare two values for equality. Both your implementation of M:System.IEquatable`1.Equals(`0) and your override of M:System.Object.Equals(System.Object) should return consistent results.

If you implement T:System.IEquatable`1, you should also implement T:System.IComparable`1 if instances of your type can be ordered or sorted. If your type implements T:System.IComparable`1, you should also always implement T:System.IEquatable`1.

See the example for the M:System.IEquatable`1.Equals(`0) method.

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