C# | Object.GetHashCode() Method with Examples
Last Updated :
17 Feb, 2020
This method is used to return the hash code for this instance. A hash code is a numeric value which is used to insert and identify an object in a hash-based collection. The GetHashCode
method provides this hash code for algorithms that need quick checks of object equality.
Syntax:
public virtual int GetHashCode ();
Return Value: This method returns a 32-bit signed integer hash code for the current object.
Below programs illustrate the use of Object.GetHashCode() Method:
Example 1:
using System;
class GFG {
public static void Main()
{
Object obj = new Object();
Type t = obj.GetType();
Console.WriteLine( "Type is :{0}" , t);
Console.WriteLine( "Hash Code is :{0}" ,
t.GetHashCode());
}
}
|
Output:
Type is :System.Object
Hash Code is :37162120
Example 2:
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);
}
}
class GFG {
public static void Main()
{
Author aobj = new Author( "Kirti" , "Mangal" );
Console.WriteLine( "Author details:" );
aobj.Show();
Console.WriteLine( "The hash code of object is: {0}" ,
aobj.GetHashCode());
}
}
|
Output:
Author details:
first Name : Kirti
last Name : Mangal
The hash code of object is: -751588944
Important Points:
- Two objects that return different hash codes means objects are not equal but the reverse is not true. Means, equal hash codes do not imply object equality, because different (unequal) objects can have identical hash codes.
- The .NET Framework does not guarantee the default implementation of the GetHashCode method, and the value this method returns may differ between .NET Framework versions and platforms, such as 32-bit and 64-bit platforms.
- A hash code is not a permanent value so do not serialize, store the hash values in databases etc.
- Do not test for equality of hash codes to determine whether two objects are equal.
Reference: https://docs.microsoft.com/en-us/dotnet/api/system.object.gethashcode?view=netframework-4.7.2
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...