Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo ValueType.GetHashCode ()

 

Data di pubblicazione: ottobre 2016

Restituisce il codice hash per questa istanza.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public override int GetHashCode()

Valore restituito

Type: System.Int32

Un numero intero con segno a 32 bit che rappresenta il codice hash per questa istanza.

Il GetHashCode metodo si applica ai tipi derivati da ValueType. Uno o più campi del tipo derivato viene usato per calcolare il valore restituito. Se si chiama il tipo derivato GetHashCodemetodo, il valore restituito non è probabile che essere utilizzabile come chiave in una tabella hash. Inoltre, se si modifica il valore di uno o più campi, il valore restituito potrebbe diventare non appropriato per l'utilizzo come una chiave in una tabella hash. In entrambi i casi, si consiglia di scrivere la propria implementazione di GetHashCode metodo che meglio rappresenta il concetto di un codice hash per il tipo.

Per altre informazioni, vedere Object.GetHashCode e System.Collections.Hashtable.

Quando si chiama il GetHashCode metodo su un Windows Runtime struttura, fornisce il comportamento predefinito per i tipi di valore che non esegue l'override GetHashCode. Ciò fa parte del supporto fornito da .NET Framework per Windows Runtime (vedere Supporto .NET Framework per applicazioni Windows Store e Windows Runtime.Windows RuntimeImpossibile eseguire l'override di strutture GetHashCode, anche se alla scrittura con c# o Visual Basic, perché non hanno metodi. (Inoltre strutture nel Windows Runtime stesso non ereditano ValueType.) Tuttavia, sembrano disporre ToString, Equals, e GetHashCode metodi quando utilizzarle nel codice c# o Visual Basic e .NET Framework fornisce il comportamento predefinito per questi metodi.

Nell'esempio seguente viene illustrato come la GetHashCode metodo può essere sovrascritto da un tipo di valore derivato.

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();
	}
}

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: