public override int GetHashCode() { if (!_hashCode.HasValue) { var equalityComparer = EqualityComparer; _hashCode = equalityComparer.GetHashCode(this); } return _hashCode.Value; }