¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
GetHashCode (Método)
Collapse the table of content
Expand the table of content

ValueType.GetHashCode (Método)

Actualización: noviembre 2007

Devuelve el código hash de esta instancia.

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

public override int GetHashCode()
public int GetHashCode()
public override function GetHashCode() : int

Valor devuelto

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

El método GetHashCode se aplica a los tipos derivados de ValueType. Se utiliza uno o más campos del tipo derivado para calcular el valor devuelto. Si llama al método GetHashCode del tipo derivado, no es probable que el valor devuelto sea adecuado para su uso como clave en una tabla hash. Además, si cambia el valor de uno o más de dichos campos, el valor devuelto se podría convertir en no adecuado para su uso como clave en una tabla hash. En cualquier caso, considere la escritura de su propia implementación del método GetHashCode para que represente con mayor precisión el concepto de código hash del tipo.

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

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

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


public class Complex
{
    public double mRe;
    public double mIm;

    public boolean Equals(Object ob)
    {
        if (ob instanceof Complex) {
            Complex c = (Complex)ob;
            return mRe == c.mRe && mIm == c.mIm;
        }
        else {
            return false;
        }
    } //Equals

    public int GetHashCode()
    {
        return ((System.Double)mRe).GetHashCode() ^ ((System.Double)mIm).
            GetHashCode();
    } //GetHashCode
} //Complex


	public class Complex 
	{
		public var m_Re : double;
		public var m_Im : double;

		public override function Equals( ob ) : Boolean{
			if( ob.GetType() == Complex ) {
				var c : Complex = Complex(ob);
				return m_Re==c.m_Re && m_Im==c.m_Im;
			}
			else {
				return false;
			}
		}

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

                public static function main() {
                       var x : Complex = new Complex();
                       x.m_Re = 1;
                       x.m_Im = 2;
                       var y : Complex = new Complex();
                       y.m_Re = 2;
                       y.m_Im = 1;

                       Console.Write(x.Equals(y));                       
                }
	}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC, Xbox 360

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 3.5, 2.0, 1.0

XNA Framework

Compatible con: 2.0, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft