public override int GetHashCode()
        {
            int hash = GetType().GetHashCode();

            if (hasCountryCode)
            {
                hash ^= countryCode_.GetHashCode();
            }
            if (hasNationalNumber)
            {
                hash ^= nationalNumber_.GetHashCode();
            }
            if (hasExtension)
            {
                hash ^= extension_.GetHashCode();
            }
            // Manual fix to behave like the Java version which ignores the hasItalianLeadingZero fields
            hash ^= italianLeadingZero_.GetHashCode();
            if (hasRawInput)
            {
                hash ^= rawInput_.GetHashCode();
            }
            if (hasCountryCodeSource)
            {
                hash ^= countryCodeSource_.GetHashCode();
            }
            if (hasPreferredDomesticCarrierCode)
            {
                hash ^= preferredDomesticCarrierCode_.GetHashCode();
            }
            return(hash);
        }
        public override int GetHashCode()
        {
            int hash = GetType().GetHashCode();

            if (hasCountryCode)
            {
                hash ^= countryCode_.GetHashCode();
            }
            if (hasNationalNumber)
            {
                hash ^= nationalNumber_.GetHashCode();
            }
            if (hasExtension)
            {
                hash ^= extension_.GetHashCode();
            }
            if (hasItalianLeadingZero)
            {
                hash ^= italianLeadingZero_.GetHashCode();
            }
            if (hasRawInput)
            {
                hash ^= rawInput_.GetHashCode();
            }
            if (hasCountryCodeSource)
            {
                hash ^= countryCodeSource_.GetHashCode();
            }
            if (hasPreferredDomesticCarrierCode)
            {
                hash ^= preferredDomesticCarrierCode_.GetHashCode();
            }
            return(hash);
        }