Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

ValueType.GetHashCode, méthode

Retourne le code de hachage de cette instance.

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)

public override int GetHashCode()

Valeur de retour

Type : System.Int32
Entier signé 32 bits qui est le code de hachage pour cette instance.

La méthode GetHashCode s'applique aux types dérivés de ValueType. Un ou plusieurs champs du type dérivé sont utilisés pour calculer la valeur de retour. Si vous appelez la méthode GetHashCode du type dérivé, il est peu probable que la valeur de retour puisse être utilisée comme clé dans une table de hachage. En outre, si la valeur d'un ou plusieurs champs change, il sera peut-être impossible d'utiliser la valeur de retour comme clé dans une table de hachage. Dans les deux cas, envisagez d'écrire votre propre implémentation de la méthode GetHashCode, capable de mieux représenter le concept d'un code de hachage pour le type.

Pour plus d'informations, consultez Object.GetHashCode et System.Collections.Hashtable.

Remarques pour Windows Runtime

Lorsque vous appelez la méthode GetHashCode sur une structure d'Windows Runtime, il fournit le comportement par défaut pour les types valeur qui ne substituent pas GetHashCode. Ceci fait partie du support que le Framework .NET fournit pour Windows Runtime (voir Prise en charge .NET Framework pour les applications Windows Store et Windows Runtime). les structures d'Windows Runtime ne peuvent pas substituer GetHashCode, même si elles sont écrites avec C# ou Visual Basic, car elles ne peuvent pas avoir de méthodes. (En outre, les structures dans Windows Runtime lui-même n'héritent pas ValueType.) Toutefois, ils semblent avoir ToString, Equals, et les méthodes d'GetHashCode lorsque vous les utilisez dans votre code C# ou Visual Basic, et .NET Framework fournit le comportement par défaut pour ces méthodes.

L'exemple suivant illustre comment la méthode GetHashCode peut être substituée par un type valeur dérivé.


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


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

Afficher:
© 2014 Microsoft