IEqualityComparer.Equals(Object, Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したオブジェクトが等しいかどうかを判断します。
public:
bool Equals(System::Object ^ x, System::Object ^ y);
public bool Equals(object x, object y);
public bool Equals(object? x, object? y);
abstract member Equals : obj * obj -> bool
Public Function Equals (x As Object, y As Object) As Boolean
パラメーター
- x
- Object
比較する最初のオブジェクト。
- y
- Object
比較する 2 番目のオブジェクト。
返品
true 指定したオブジェクトが等しい場合。それ以外の場合は false。
例外
x と y は異なる型であり、どちらも他方との比較を処理できません。
例
次のコード例は、大文字と小文字を区別しない IEqualityComparerの実装を示しています。 この例では、 CaseInsensitiveComparer.Compare メソッドを使用して、指定された CultureInfoに基づいて、2 つのオブジェクトが等しいかどうかを判断します。
class myCultureComparer : IEqualityComparer
{
public CaseInsensitiveComparer myComparer;
public myCultureComparer()
{
myComparer = CaseInsensitiveComparer.DefaultInvariant;
}
public myCultureComparer(CultureInfo myCulture)
{
myComparer = new CaseInsensitiveComparer(myCulture);
}
public new bool Equals(object x, object y)
{
return myComparer.Compare(x, y) == 0;
}
public int GetHashCode(object obj)
{
return obj.ToString().ToLower().GetHashCode();
}
}
Public Class myCultureComparer
Implements IEqualityComparer
Dim myComparer As CaseInsensitiveComparer
Public Sub New()
myComparer = CaseInsensitiveComparer.DefaultInvariant
End Sub
Public Sub New(ByVal myCulture As CultureInfo)
myComparer = New CaseInsensitiveComparer(myCulture)
End Sub
Public Function Equals1(ByVal x As Object, ByVal y As Object) _
As Boolean Implements IEqualityComparer.Equals
Return myComparer.Compare(x, y) = 0
End Function
Public Function GetHashCode1(ByVal obj As Object) _
As Integer Implements IEqualityComparer.GetHashCode
Return obj.ToString().ToLower().GetHashCode()
End Function
End Class
注釈
オブジェクトに対してカスタマイズされた等価比較を提供するには、このメソッドを実装します。
注意 (実装者)
Equals(Object, Object)メソッドは、再帰、対称、推移的です。 つまり、オブジェクトをそれ自体と比較するために使用する場合はtrueが返されます。trueとxにy場合は 2 つの trueオブジェクトのy、との場合はx、truexとzの場合 trueは 2 つの xオブジェクトのy、trueとyのzも返されます。
実装は、Equals(Object, Object) メソッドが 2 つのオブジェクトtrueおよびxのyを返す場合、GetHashCode(Object)のx メソッドによって返される値が、yに返される値と等しい必要があることを確認するために必要です。