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

◆ TryFormat() [1/4]

bool System.Version.TryFormat ( Span< char > destination,
int fieldCount,
out int charsWritten )
inline

Definition at line 243 of file Version.cs.

244 {
245 switch (fieldCount)
246 {
247 default:
248 ThrowArgumentException("4");
249 break;
250 case 3:
251 case 4:
252 if (_Build != -1)
253 {
254 if (fieldCount == 4 && _Revision == -1)
255 {
256 ThrowArgumentException("3");
257 }
258 }
259 else
260 {
261 ThrowArgumentException("2");
262 }
263 break;
264 case 0:
265 case 1:
266 case 2:
267 break;
268 }
269 int num = 0;
270 for (int i = 0; i < fieldCount; i++)
271 {
272 if (i != 0)
273 {
274 if (destination.IsEmpty)
275 {
276 charsWritten = 0;
277 return false;
278 }
279 destination[0] = '.';
280 destination = destination.Slice(1);
281 num++;
282 }
283 if (!(i switch
284 {
285 0 => (uint)_Major,
286 1 => (uint)_Minor,
287 2 => (uint)_Build,
288 _ => (uint)_Revision,
289 }).TryFormat(destination, out var charsWritten2))
290 {
291 charsWritten = 0;
292 return false;
293 }
294 num += charsWritten2;
295 destination = destination.Slice(charsWritten2);
296 }
297 charsWritten = num;
298 return true;
299 static void ThrowArgumentException(string failureUpperBound)
300 {
301 throw new ArgumentException(SR.Format(SR.ArgumentOutOfRange_Bounds_Lower_Upper, "0", failureUpperBound), "fieldCount");
302 }
303 }
readonly int _Minor
Definition Version.cs:13
readonly int _Major
Definition Version.cs:11
bool TryFormat(Span< char > destination, out int charsWritten)
Definition Version.cs:238
readonly int _Build
Definition Version.cs:15
readonly int _Revision
Definition Version.cs:17

References System.Version._Build, System.Version._Major, System.Version._Minor, System.Version._Revision, System.SR.ArgumentOutOfRange_Bounds_Lower_Upper, System.destination, System.SR.Format(), and System.Version.TryFormat().