/// <summary>Serves as the default hash function. </summary> /// <returns>A hash code for the current object.</returns> public override int GetHashCode() { unchecked { var hashCode = IsValid.GetHashCode(); hashCode = (hashCode * 397) ^ (RelativeLocation?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (AbsoluteLocation?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (InstanceLocation?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (AnnotationValue?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (Keyword?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (AdditionalInfo?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (NestedResults?.GetCollectionHashCode() ?? 0); return(hashCode); } }
public void HashCode() { Assert.AreEqual((int)(0 ^ 0), loc.GetHashCode()); Assert.AreEqual((int)((int)1234 ^ (int)987), loc_1234_987.GetHashCode()); }