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

◆ GetEnumInfo()

static EnumInfo System.Enum.GetEnumInfo ( RuntimeType enumType,
bool getNames = true )
inlinestaticprivate

Definition at line 51 of file Enum.cs.

52 {
53 EnumInfo enumInfo = enumType.GenericCache as EnumInfo;
54 if (enumInfo == null || (getNames && enumInfo.Names == null))
55 {
56 ulong[] o = null;
57 string[] o2 = null;
58 RuntimeTypeHandle rth = enumType.GetTypeHandleInternal();
59 GetEnumValuesAndNames(new QCallTypeHandle(ref rth), ObjectHandleOnStack.Create(ref o), ObjectHandleOnStack.Create(ref o2), getNames ? Interop.BOOL.TRUE : Interop.BOOL.FALSE);
60 bool hasFlagsAttribute = enumType.IsDefined(typeof(FlagsAttribute), inherit: false);
61 enumInfo = (EnumInfo)(enumType.GenericCache = new EnumInfo(hasFlagsAttribute, o, o2));
62 }
63 return enumInfo;
64 }
static void GetEnumValuesAndNames(QCallTypeHandle enumType, ObjectHandleOnStack values, ObjectHandleOnStack names, Interop.BOOL getNames)

References System.RuntimeType.GenericCache, System.Enum.GetEnumValuesAndNames(), System.Type.GetTypeHandleInternal(), System.RuntimeType.IsDefined(), and System.Enum.EnumInfo.Names.

Referenced by System.Enum.GetEnumName(), System.Enum.InternalFlagsFormat(), System.Enum.InternalFormat(), System.Enum.InternalGetNames(), System.Enum.InternalGetValues(), and System.Enum.TryParseByName().