public override int GetHashCode() { if (_hash == null) { int hashCode = _baseType.GetHashCode(); for (int i = 0; i < _interfaceTypes.Count; i++) { hashCode ^= _interfaceTypes[i].GetHashCode(); } _hash = hashCode; } return _hash.Value; }