Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método ValueType.GetHashCode ()

 

Publicado: octubre de 2016

Devuelve el código hash de esta instancia.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public override int GetHashCode()

Valor devuelto

Type: System.Int32

Entero de 32 bits con signo, que es el código hash de esta instancia.

El GetHashCode método se aplica a los tipos derivados de ValueType. Uno o varios campos del tipo derivado se usa para calcular el valor devuelto. Si se llama al método del tipo derivado GetHashCodemétodo, el valor devuelto no es probable que sea adecuado para su uso como una clave en una tabla hash. Además, si cambia el valor de uno o varios de esos campos, el valor devuelto puede volverse no es adecuado para su uso como una clave en una tabla hash. En cualquier caso, considere la posibilidad de escribir su propia implementación de la GetHashCode método que representa el concepto de un código hash para el tipo de forma más estrecha.

Para obtener más información, vea Object.GetHashCode y System.Collections.Hashtable.

Cuando se llama a la GetHashCode método en un Windows en tiempo de ejecución estructura, proporciona el comportamiento predeterminado para los tipos de valor que no se invalidan GetHashCode. Esto forma parte de la compatibilidad que .NET Framework proporciona para Windows en tiempo de ejecución (vea Compatibilidad de .NET Framework con las aplicaciones de la Tienda Windows y Windows Runtime).Windows en tiempo de ejecuciónno pueden reemplazar a las estructuras GetHashCode, incluso si está escritos con C# o Visual Basic, ya que no pueden tener métodos. (Además, las estructuras de la Windows en tiempo de ejecución no heredar ValueType.) Sin embargo, parece que tienen ToString, Equals, y GetHashCode métodos cuando se usa en el código de C# o Visual Basic y .NET Framework proporciona el comportamiento predeterminado para estos métodos.

En el ejemplo siguiente se muestra cómo el GetHashCode método puede reemplazarse por un tipo de valor derivado.

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

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: