IEqualityComparer.GetHashCode(Object) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen nesne için bir karma kodu döndürür.
public:
int GetHashCode(System::Object ^ obj);
public int GetHashCode (object obj);
abstract member GetHashCode : obj -> int
Public Function GetHashCode (obj As Object) As Integer
Parametreler
Döndürülenler
Belirtilen nesne için karma kod.
Özel durumlar
türü obj
bir başvuru türüdür ve obj
şeklindedir null
.
Örnekler
Aşağıdaki kod örneği, büyük/küçük harfe duyarsız IEqualityCompareruygulamasını gösterir. Bu örnekte yöntemi, GetHashCode türü tarafından Object sağlanan karma kodu döndürür.
ref class myCultureComparer : IEqualityComparer
{
private:
CaseInsensitiveComparer^ myComparer;
public:
myCultureComparer()
{
myComparer = CaseInsensitiveComparer::DefaultInvariant;
}
myCultureComparer(CultureInfo^ myCulture)
{
myComparer = gcnew CaseInsensitiveComparer(myCulture);
}
virtual bool Equals(Object^ x, Object^ y)
{
if (myComparer->Compare(x, y) == 0)
{
return true;
}
else
{
return false;
}
}
virtual int GetHashCode(Object^ obj)
{
return obj->ToString()->ToLower()->GetHashCode();
}
};
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
Açıklamalar
Yöntemi tarafından Equals sağlanan özelleştirilmiş eşitlik karşılaştırmasına karşılık gelen nesneler için özelleştirilmiş karma kodları sağlamak için bu yöntemi uygulayın.
Uygulayanlara Notlar
Yöntemlerin ve için iki nesne y
x
döndürdüğünde Equals(Object, Object)true
yöntemi tarafından döndürülen değerin için döndürülen değere eşit olması gerektiğinden GetHashCode(Object) emin olmak için x
y
uygulamalar gereklidir.