Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ValueType.GetHashCode-Methode: ()

 

Veröffentlicht: Oktober 2016

Gibt den Hashcode für diese Instanz zurück.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public override int GetHashCode()

Rückgabewert

Type: System.Int32

Eine 32-Bit-Ganzzahl mit Vorzeichen. Diese ist der Hashcode für die Instanz.

Die GetHashCode Methode gilt für Typen, die von abgeleiteten ValueType. Ein oder mehrere Felder des abgeleiteten Typs wird verwendet, um den Rückgabewert zu berechnen. Wenn Sie des abgeleiteten Typs aufrufen GetHashCode-Methode der Rückgabewert wahrscheinlich nicht für die Verwendung als Schlüssel in einer Hashtabelle geeignet. Darüber hinaus kann der Wert eines oder mehrerer dieser Felder ändert, für die Verwendung als Schlüssel in einer Hashtabelle ungeeignet zurückgegeben werden. In beiden Fällen sollten Sie eine eigene Implementierung Schreiben der GetHashCode -Methode, die das Konzept eines Hashcodes für den Typ genauer darstellt.

Weitere Informationen finden Sie unter Object.GetHashCode und System.Collections.Hashtable.

Beim Aufrufen der GetHashCode -Methode für eine Windows-Runtime -Struktur ist es das Standardverhalten für Werttypen, die nicht außer Kraft setzen GetHashCode. Dies ist Teil der Unterstützung von .NET Framework für die Windows-Runtime (siehe .NET Framework-Unterstützung für Windows Store-Apps und Windows-Runtime).Windows-Runtime Strukturen können nicht überschrieben werden GetHashCode, selbst wenn sie mit c# oder Visual Basic geschrieben sind, da diese Methoden haben können. (Darüber hinaus Strukturen in der Windows-Runtime selbst nicht erben ValueType.) Allerdings haben sie scheinbar ToString, Equals, und GetHashCode Methoden, wenn Sie diese C#- oder Visual Basic-Code verwenden, und .NET Framework das Standardverhalten für diese Methoden ist.

Im folgende Beispiel wird veranschaulicht, wie die GetHashCode Methode von einem abgeleiteten Typ überschrieben werden kann.

public struct Complex 
{
	public double m_Re;
	public double m_Im;

	public override bool Equals( object ob ){
		if( ob is Complex ) {
			Complex c = (Complex) ob;
			return m_Re==c.m_Re && m_Im==c.m_Im;
		}
		else {
			return false;
		}
	}

	public override int GetHashCode(){
		return m_Re.GetHashCode() ^ m_Im.GetHashCode();
	}
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: