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

◆ TryFormat()

static bool System.Globalization.TimeSpanFormat.TryFormat ( TimeSpan value,
Span< char > destination,
out int charsWritten,
ReadOnlySpan< char > format,
IFormatProvider formatProvider )
inlinestaticpackage

Definition at line 206 of file TimeSpanFormat.cs.

207 {
208 if (format.Length == 0)
209 {
210 return TryFormatStandard(value, StandardFormat.C, null, destination, out charsWritten);
211 }
212 if (format.Length == 1)
213 {
214 char c = format[0];
215 if (c == 'c' || (c | 0x20) == 116)
216 {
217 return TryFormatStandard(value, StandardFormat.C, null, destination, out charsWritten);
218 }
219 return TryFormatStandard(value, c switch
220 {
221 'G' => StandardFormat.G,
222 'g' => StandardFormat.g,
223 _ => throw new FormatException(SR.Format_InvalidString),
224 }, DateTimeFormatInfo.GetInstance(formatProvider).DecimalSeparator, destination, out charsWritten);
225 }
226 StringBuilder stringBuilder = FormatCustomized(value, format, DateTimeFormatInfo.GetInstance(formatProvider));
227 if (stringBuilder.Length <= destination.Length)
228 {
229 stringBuilder.CopyTo(0, destination, stringBuilder.Length);
230 charsWritten = stringBuilder.Length;
231 StringBuilderCache.Release(stringBuilder);
232 return true;
233 }
234 charsWritten = 0;
235 StringBuilderCache.Release(stringBuilder);
236 return false;
237 }
static StringBuilder FormatCustomized(TimeSpan value, ReadOnlySpan< char > format, DateTimeFormatInfo dtfi, StringBuilder result=null)
static bool TryFormatStandard(TimeSpan value, StandardFormat format, string decimalSeparator, Span< char > destination, out int charsWritten)
static void Release(StringBuilder sb)
void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count)

References System.Text.StringBuilder.CopyTo(), System.destination, System.format, System.SR.Format_InvalidString, System.Globalization.TimeSpanFormat.FormatCustomized(), System.Text.StringBuilder.Length, System.Text.StringBuilderCache.Release(), System.Globalization.TimeSpanFormat.TryFormatStandard(), and System.value.

Referenced by System.TimeSpan.TryFormat().