public override int GetHashCode() { unchecked { var hashCode = ByteField.GetHashCode(); hashCode = (hashCode * 397) ^ SByteField.GetHashCode(); hashCode = (hashCode * 397) ^ Int16Field.GetHashCode(); hashCode = (hashCode * 397) ^ UInt16Field.GetHashCode(); hashCode = (hashCode * 397) ^ Int32Field; hashCode = (hashCode * 397) ^ (int)UInt32Field; hashCode = (hashCode * 397) ^ Int64Field.GetHashCode(); hashCode = (hashCode * 397) ^ UInt64Field.GetHashCode(); hashCode = (hashCode * 397) ^ DecimalField.GetHashCode(); hashCode = (hashCode * 397) ^ SingleFiled.GetHashCode(); hashCode = (hashCode * 397) ^ DoubleField.GetHashCode(); hashCode = (hashCode * 397) ^ (StringField != null ? StringField.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (int)MyEnumField; hashCode = (hashCode * 397) ^ BooleanField.GetHashCode(); hashCode = (hashCode * 397) ^ DateTimeField.GetHashCode(); hashCode = (hashCode * 397) ^ DateTimeOffsetField.GetHashCode(); hashCode = (hashCode * 397) ^ GuidField.GetHashCode(); hashCode = (hashCode * 397) ^ TimeSpanField.GetHashCode(); hashCode = (hashCode * 397) ^ (UrlField != null ? UrlField.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (NullField != null ? NullField.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (IntArrayField != null ? IntArrayField.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (StringArrayField != null ? StringArrayField.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (EmptyArrayField != null ? EmptyArrayField.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (NullArrayField != null ? NullArrayField.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (DictionaryArrayField != null ? DictionaryArrayField.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (ObjectArrayField != null ? ObjectArrayField.GetHashCode() : 0); return(hashCode); } }