public override int GetHashCode() { int result; result = requiredString != null?requiredString.GetHashCode() : 0; result = (31 * result) + (optionalString != null ? optionalString.GetHashCode() : 0); result = (31 * result) + (anInterface != null ? anInterface.GetHashCode() : 0); result = (31 * result) + anInt; result = (31 * result) + aDouble.GetHashCode(); return(result); }