public override int GetHashCode()
{
unchecked
{
// Choose large primes to avoid hashing collisions
const int HashingBase = (int) 2166136261;
const int HashingMultiplier = 16777619;
int hash = HashingBase;
hash = (hash * HashingMultiplier) ^ Prop0.GetHashCode();
hash = (hash * HashingMultiplier) ^
(!object.ReferenceEquals(null, Prop1) ? Prop1.GetHashCode() : 0);
hash = (hash * HashingMultiplier) ^ Prop2.GetHashCode();
return hash;
}
}