GetHashCode Método
Collapse the table of content
Expand the table of content
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

ValueType::GetHashCode (Método) ()

 

Devuelve el código hash de esta instancia.

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

public:
virtual int GetHashCode() override

Valor devuelto

Type: 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.

Cuando se llama al método GetHashCode en una estructura de Windows en tiempo de ejecución , proporciona el comportamiento predeterminado de los tipos de valor que no 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 en tiempo de ejecución).estructuras deWindows en tiempo de ejecución no pueden invalidar GetHashCode, aunque se escriben con C# o Visual Basic, porque no pueden tener métodos. (Además, las estructuras de Windows en tiempo de ejecución sí mismo no hereda ValueType.) Sin embargo, aparecen para tener ToString, Equals, y métodos GetHashCode que se usan en el código de C# o Visual Basic, y .NET Framework proporciona el comportamiento predeterminado para estos métodos.

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

public ref struct Complex
{
public:
   double m_Re;
   double m_Im;
   virtual bool Equals( Object^ ob ) override
   {
      if ( dynamic_cast<Complex^>(ob) )
      {
         Complex^ c = dynamic_cast<Complex^>(ob);
         return m_Re == c->m_Re && m_Im == c->m_Im;
      }
      else
      {
         return false;
      }
   }

   virtual int GetHashCode() override
   {
      return m_Re.GetHashCode() ^ m_Im.GetHashCode();
   }
};

Universal Windows Platform
Disponible desde 4.5
.NET Framework
Disponible desde 1.1
Portable Class Library
Compatible con: portable .NET platforms
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar:
© 2016 Microsoft