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

◆ TryParseInt32Enum()

static bool System.Enum.TryParseInt32Enum ( RuntimeType enumType,
ReadOnlySpan< char > value,
int minInclusive,
int maxInclusive,
bool ignoreCase,
bool throwOnFailure,
TypeCode type,
out int result )
inlinestaticprivate

Definition at line 641 of file Enum.cs.

642 {
643 Number.ParsingStatus parsingStatus = Number.ParsingStatus.OK;
644 if (StartsNumber(value[0]))
645 {
646 parsingStatus = Number.TryParseInt32IntegerStyle(value, NumberStyles.AllowTrailingWhite | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture.NumberFormat, out result);
647 if (parsingStatus == Number.ParsingStatus.OK)
648 {
649 if ((uint)(result - minInclusive) <= (uint)(maxInclusive - minInclusive))
650 {
651 return true;
652 }
653 parsingStatus = Number.ParsingStatus.Overflow;
654 }
655 }
656 ulong result2;
657 if (parsingStatus == Number.ParsingStatus.Overflow)
658 {
659 if (throwOnFailure)
660 {
661 Number.ThrowOverflowException(type);
662 }
663 }
664 else if (TryParseByName(enumType, value, ignoreCase, throwOnFailure, out result2))
665 {
666 result = (int)result2;
667 return true;
668 }
669 result = 0;
670 return false;
671 }
static bool StartsNumber(char c)
Definition Enum.cs:865
static bool TryParseByName(RuntimeType enumType, ReadOnlySpan< char > value, bool ignoreCase, bool throwOnFailure, out ulong result)
Definition Enum.cs:793
static CultureInfo InvariantCulture

References System.Globalization.CultureInfo.InvariantCulture, System.Enum.StartsNumber(), System.Number.ThrowOverflowException(), System.Enum.TryParseByName(), System.Number.TryParseInt32IntegerStyle(), System.type, and System.value.

Referenced by System.Enum.TryParse(), and System.Enum.TryParse< TEnum >().