public override int GetHashCode() { var hash = base.GetHashCode(); hash ^= Readonly.GetHashCode(); hash ^= IntId.GetHashCode(); hash ^= UIntId.GetHashCode(); hash ^= LongId.GetHashCode(); hash ^= ULongId.GetHashCode(); hash ^= ShortId.GetHashCode(); hash ^= UShortId.GetHashCode(); hash ^= DoulbeId.GetHashCode(); hash ^= ByteId.GetHashCode(); hash ^= CharId.GetHashCode(); hash ^= SByteId.GetHashCode(); hash ^= CharRef.GetHashCode(); hash ^= ByteRef.GetHashCode(); hash ^= SByteRef.GetHashCode(); hash ^= Int16Id.GetHashCode(); hash ^= UInt16Id.GetHashCode(); hash ^= Int32Id.GetHashCode(); hash ^= UInt32Id.GetHashCode(); hash ^= Int64Id.GetHashCode(); hash ^= UInt64Id.GetHashCode(); hash ^= DateTime.GetHashCode(); hash ^= TitleEnum.GetHashCode(); hash ^= ATitleEnum.GetHashCode(); hash ^= FirstName.GetHashCode(); hash ^= LastName.GetHashCode(); hash ^= Bool.GetHashCode(); hash ^= BoolRef.GetHashCode(); if (Array != null) { hash ^= Array.GetHashCode(); } if (Enumerable != null) { hash ^= Enumerable.GetHashCode(); } if (Father != null) { hash ^= Father.GetHashCode(); } if (Mother != null) { hash ^= Mother.GetHashCode(); } if (Hidden != null) { hash ^= Hidden.GetHashCode(); } return(hash); }