Exportar (0) Imprimir
Expandir todo

ValueType.GetHashCode (Método)

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

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 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft