Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ParseFormatSpecifier()

static char System.Globalization.FormatProvider.Number.ParseFormatSpecifier ( ReadOnlySpan< char > format,
out int digits )
inlinestaticpackage

Definition at line 368 of file FormatProvider.cs.

369 {
370 char c = '\0';
371 if (format.Length > 0)
372 {
373 c = format[0];
374 if ((uint)(c - 65) <= 25u || (uint)(c - 97) <= 25u)
375 {
376 if (format.Length == 1)
377 {
378 digits = -1;
379 return c;
380 }
381 if (format.Length == 2)
382 {
383 int num = format[1] - 48;
384 if ((uint)num < 10u)
385 {
386 digits = num;
387 return c;
388 }
389 }
390 else if (format.Length == 3)
391 {
392 int num2 = format[1] - 48;
393 int num3 = format[2] - 48;
394 if ((uint)num2 < 10u && (uint)num3 < 10u)
395 {
396 digits = num2 * 10 + num3;
397 return c;
398 }
399 }
400 int num4 = 0;
401 int num5 = 1;
402 while (num5 < format.Length && (uint)(format[num5] - 48) < 10u)
403 {
404 int num6 = num4 * 10 + format[num5++] - 48;
405 if (num6 < num4)
406 {
407 throw new FormatException(System.SR.Argument_BadFormatSpecifier);
408 }
409 num4 = num6;
410 }
411 if (num5 == format.Length || format[num5] == '\0')
412 {
413 digits = num4;
414 return c;
415 }
416 }
417 }
418 digits = -1;
419 if (format.Length != 0 && c != 0)
420 {
421 return '\0';
422 }
423 return 'G';
424 }
static string Argument_BadFormatSpecifier
Definition SR.cs:488
Definition SR.cs:7

References System.SR.Argument_BadFormatSpecifier, and System.format.

Referenced by System.Globalization.FormatProvider.FormatBigInteger().