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

◆ FormatUInt64()

static string System.Number.FormatUInt64 ( ulong value,
string format,
IFormatProvider provider )
inlinestatic

Definition at line 2145 of file Number.cs.

2146 {
2147 if (string.IsNullOrEmpty(format))
2148 {
2149 return UInt64ToDecStr(value, -1);
2150 }
2151 return FormatUInt64Slow(value, format, provider);
2152 unsafe static string FormatUInt64Slow(ulong value, string format, IFormatProvider provider)
2153 {
2154 ReadOnlySpan<char> format2 = format;
2155 int digits;
2156 char c = ParseFormatSpecifier(format2, out digits);
2157 char c2 = (char)(c & 0xFFDFu);
2158 if ((c2 == 'G') ? (digits < 1) : (c2 == 'D'))
2159 {
2160 return UInt64ToDecStr(value, digits);
2161 }
2162 if (c2 == 'X')
2163 {
2164 return Int64ToHexStr((long)value, GetHexBase(c), digits);
2165 }
2166 NumberFormatInfo instance = NumberFormatInfo.GetInstance(provider);
2167 byte* digits2 = stackalloc byte[21];
2168 NumberBuffer number = new NumberBuffer(NumberBufferKind.Integer, digits2, 21);
2169 UInt64ToNumber(value, ref number);
2170 char* pointer = stackalloc char[32];
2171 ValueStringBuilder sb = new ValueStringBuilder(new Span<char>(pointer, 32));
2172 if (c != 0)
2173 {
2174 NumberToString(ref sb, ref number, c, digits, instance);
2175 }
2176 else
2177 {
2178 NumberToStringFormat(ref sb, ref number, format2, instance);
2179 }
2180 return sb.ToString();
2181 }
2182 }
static NumberFormatInfo GetInstance(IFormatProvider? formatProvider)
static unsafe string UInt64ToDecStr(ulong value, int digits)
Definition Number.cs:2606
static unsafe void UInt64ToNumber(ulong value, ref NumberBuffer number)
Definition Number.cs:2586
static char ParseFormatSpecifier(ReadOnlySpan< char > format, out int digits)
Definition Number.cs:2657
static unsafe void NumberToStringFormat(ref ValueStringBuilder sb, ref NumberBuffer number, ReadOnlySpan< char > format, NumberFormatInfo info)
Definition Number.cs:2817
static unsafe string Int64ToHexStr(long value, char hexBase, int digits)
Definition Number.cs:2541
static char GetHexBase(char fmt)
Definition Number.cs:1877
static void NumberToString(ref ValueStringBuilder sb, ref NumberBuffer number, char format, int nMaxDigits, NumberFormatInfo info)
Definition Number.cs:2715

References System.format, System.Number.GetHexBase(), System.Globalization.NumberFormatInfo.GetInstance(), System.Number.Int64ToHexStr(), System.Number.NumberToString(), System.Number.NumberToStringFormat(), System.Number.ParseFormatSpecifier(), System.pointer, System.Text.ValueStringBuilder.ToString(), System.Number.UInt64ToDecStr(), System.Number.UInt64ToNumber(), and System.value.

Referenced by System.UInt64.ToString(), and System.UInt64.ToString().