public override int GetHashCode() { unchecked { var hashCode = Id; hashCode = (hashCode * 397) ^ NullableId.GetHashCode(); hashCode = (hashCode * 397) ^ Byte.GetHashCode(); hashCode = (hashCode * 397) ^ Short.GetHashCode(); hashCode = (hashCode * 397) ^ Int; hashCode = (hashCode * 397) ^ Long.GetHashCode(); hashCode = (hashCode * 397) ^ UShort.GetHashCode(); hashCode = (hashCode * 397) ^ (int)UInt; hashCode = (hashCode * 397) ^ ULong.GetHashCode(); hashCode = (hashCode * 397) ^ Float.GetHashCode(); hashCode = (hashCode * 397) ^ Double.GetHashCode(); hashCode = (hashCode * 397) ^ Decimal.GetHashCode(); hashCode = (hashCode * 397) ^ (String != null ? String.GetHashCode() : 0); hashCode = (hashCode * 397) ^ DateTime.GetHashCode(); hashCode = (hashCode * 397) ^ TimeSpan.GetHashCode(); hashCode = (hashCode * 397) ^ DateTimeOffset.GetHashCode(); hashCode = (hashCode * 397) ^ Guid.GetHashCode(); hashCode = (hashCode * 397) ^ Char.GetHashCode(); hashCode = (hashCode * 397) ^ NullableDateTime.GetHashCode(); hashCode = (hashCode * 397) ^ NullableTimeSpan.GetHashCode(); hashCode = (hashCode * 397) ^ (StringList != null ? StringList.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (StringArray != null ? StringArray.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (StringMap != null ? StringMap.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (IntStringMap != null ? IntStringMap.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (SubType != null ? SubType.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (GenericType != null ? GenericType.GetHashCode() : 0); return(hashCode); } }
protected bool Equals(SubType other) { return(Id == other.Id && string.Equals(Name, other.Name)); }