public override HexFieldFormatter Create(HexTextWriter writer, HexFieldFormatterOptions options, HexNumberOptions arrayIndexOptions, HexNumberOptions valueNumberOptions) { if (writer == null) { throw new ArgumentNullException(nameof(writer)); } return(new HexFieldFormatterImpl(writer, options, new NumberFormatter(arrayIndexOptions), new NumberFormatter(valueNumberOptions))); }
public HexFieldFormatterImpl(HexTextWriter writer, HexFieldFormatterOptions options, NumberFormatter arrayIndexFormatter, NumberFormatter numberFormatter) { this.writer = writer ?? throw new ArgumentNullException(nameof(writer)); this.options = options; this.arrayIndexFormatter = arrayIndexFormatter; this.numberFormatter = numberFormatter; numberFormatterShort = new NumberFormatter(numberFormatter.Options | HexNumberOptions.MinimumDigits); var tokenOptions = numberFormatter.Options & ~HexNumberOptions.MinimumDigits; if ((tokenOptions & HexNumberOptions.NumberBaseMask) == HexNumberOptions.Decimal) { tokenOptions |= HexNumberOptions.HexCSharp; } tokenFormatter = new NumberFormatter(tokenOptions); }
/// <summary> /// Creates a formatter /// </summary> /// <param name="writer">Text writer</param> /// <param name="options">Options</param> /// <param name="arrayIndexOptions">Array index options</param> /// <param name="valueNumberOptions">Value number options</param> /// <returns></returns> public abstract HexFieldFormatter Create(HexTextWriter writer, HexFieldFormatterOptions options, HexNumberOptions arrayIndexOptions, HexNumberOptions valueNumberOptions);
/// <summary> /// Creates a formatter /// </summary> /// <param name="writer">Text writer</param> /// <returns></returns> public HexFieldFormatter Create(HexTextWriter writer) => Create(writer, HexFieldFormatterOptions.None, HexNumberOptions.HexCSharp | HexNumberOptions.MinimumDigits, HexNumberOptions.HexCSharp);
public HexFieldFormatterImpl(HexTextWriter writer, HexFieldFormatterOptions options, in NumberFormatter arrayIndexFormatter, in NumberFormatter numberFormatter)