C# | Método Object.GetHashCode() con ejemplos

Este método se utiliza para devolver el código hash de esta instancia. Un código hash es un valor numérico que se utiliza para insertar e identificar un objeto en una colección basada en hash. El GetHashCode método proporciona este código hash para algoritmos que necesitan verificaciones rápidas de igualdad de objetos.

Sintaxis:

public virtual int GetHashCode ();

Valor de retorno: este método devuelve un código hash de entero con signo de 32 bits para el objeto actual.

Los siguientes programas ilustran el uso del método Object.GetHashCode() :

Ejemplo 1:

// C# program to demonstrate
// Object.GetHashCode() Method
using System;
  
class GFG {
  
    // Main Method
    public static void Main()
    {
  
        // declaring an object
        Object obj = new Object();
  
        // taking Type type and assigning
        // the value as type of above
        // defined types using GetType
        // method
        Type t = obj.GetType();
  
        // Display type and hash code
        Console.WriteLine("Type is :{0}", t);
        Console.WriteLine("Hash Code is :{0}",
                             t.GetHashCode());
    }
}
Producción:

Type is :System.Object
Hash Code is :37162120

Ejemplo 2:

// C# program to demonstrate
// Object.GetHashCode() Method
using System;
  
public class Author {
  
    public string f_Name;
    public string l_Name;
  
    public Author(string f_Name, 
                  string l_Name)
    {
        this.f_Name = f_Name;
        this.l_Name = l_Name;
    }
  
    public void Show()
    {
        Console.WriteLine("first Name : "
                               + f_Name);
  
        Console.WriteLine("last Name : " 
                              + l_Name);
    }
}
  
// Driver Class
class GFG {
  
    // Main method
    public static void Main()
    {
  
        // Creating and initializing 
        // the object of Author class
        Author aobj = new Author("Kirti", "Mangal");
  
        Console.WriteLine("Author details:");
        aobj.Show();
  
        // Get the Hash Code of aobj object
        // Using GetHashCode() method
        Console.WriteLine("The hash code of object is: {0}",
                                        aobj.GetHashCode());
    }
}
Producción:

Author details:
first Name : Kirti
last Name : Mangal
The hash code of object is: -751588944

Puntos importantes:

  • Dos objetos que devuelven diferentes códigos hash significa que los objetos no son iguales, pero lo contrario no es cierto. Significa que los códigos hash iguales no implican igualdad de objetos, porque objetos diferentes (desiguales) pueden tener códigos hash idénticos.
  • .NET Framework no garantiza la implementación predeterminada del método GetHashCode y el valor que devuelve este método puede diferir entre las versiones y plataformas de .NET Framework , como las plataformas de 32 y 64 bits.
  • Un código hash no es un valor permanente, así que no serialice, almacene los valores hash en bases de datos, etc.
  • No pruebe la igualdad de los códigos hash para determinar si dos objetos son iguales.

Referencia: https://docs.microsoft.com/en-us/dotnet/api/system.object.gethashcode?view=netframework-4.7.2

Publicación traducida automáticamente

Artículo escrito por Kirti_Mangal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *