Home
Manage Your Code
Snippet: Create a HashCode code from a given object (C#)
Title: Create a HashCode code from a given object Language: C#
Description: Use this method as a template to generate a proper hashcode when GetHashCode is called on a class that overides the equals method. Views: 61
Author: Schalk van Wyk Date Added: 8/26/2008
Copy Code  
1/// <remarks>
2/// Refer to "C# in a nutshell", page 125 Generating Hash Code.
3/// Use a odd prime constant, e.g. 37 or 397
4/// </remarks>
5private int CreateHashCode(int hashCode, object target)
6{
7  int hashPrime = 397;
8  unchecked
9  {
10    return hashPrime * hashCode ^ (target == null ? 0 : target.GetHashCode());
11  }
12}
Usage
public override int GetHashCode()
 {
   int hash = base.GetHashCode();
   hash = CreateHashCode(hash, this.MyProperty);

   return hash;
}