public override NumberCellFormatBase <TValue> DeepCloneWithNegativeNumberDisplayKind(NumberFormatNegativeDisplayKind?negativeNumberDisplayKind)
        {
            var result = new NullNumberCellFormat <TValue>(
                this.NumberOfDecimalPlaces?.DeepClone(),
                this.DecimalSeparator?.DeepClone(),
                this.DigitGroupKind?.DeepClone(),
                this.DigitGroupSeparator?.DeepClone(),
                negativeNumberDisplayKind,
                this.MissingValueText?.DeepClone());

            return(result);
        }
        protected override CellValueFormatBase <TValue> DeepCloneInternal()
        {
            var result = new NullNumberCellFormat <TValue>(
                this.NumberOfDecimalPlaces?.DeepClone(),
                this.DecimalSeparator?.DeepClone(),
                this.DigitGroupKind?.DeepClone(),
                this.DigitGroupSeparator?.DeepClone(),
                this.NegativeNumberDisplayKind?.DeepClone(),
                this.MissingValueText?.DeepClone());

            return(result);
        }
        public override StandardCellValueFormatBase <TValue> DeepCloneWithMissingValueText(string missingValueText)
        {
            var result = new NullNumberCellFormat <TValue>(
                this.NumberOfDecimalPlaces?.DeepClone(),
                this.DecimalSeparator?.DeepClone(),
                this.DigitGroupKind?.DeepClone(),
                this.DigitGroupSeparator?.DeepClone(),
                this.NegativeNumberDisplayKind?.DeepClone(),
                missingValueText);

            return(result);
        }
        /// <inheritdoc />
        public bool Equals(NullNumberCellFormat <TValue> other)
        {
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            if (ReferenceEquals(other, null))
            {
                return(false);
            }

            var result = this.MissingValueText.IsEqualTo(other.MissingValueText, StringComparer.Ordinal) &&
                         this.NumberOfDecimalPlaces.IsEqualTo(other.NumberOfDecimalPlaces) &&
                         this.DecimalSeparator.IsEqualTo(other.DecimalSeparator) &&
                         this.DigitGroupKind.IsEqualTo(other.DigitGroupKind) &&
                         this.DigitGroupSeparator.IsEqualTo(other.DigitGroupSeparator) &&
                         this.NegativeNumberDisplayKind.IsEqualTo(other.NegativeNumberDisplayKind);

            return(result);
        }