private static ulong[] CreateValues() { var enumType = typeof(T).GetTypeInfo(); if (enumType.IsFlagsEnum()) { // only need the actual values if we're in Flags mode var values = Enum.GetValues(enumType); var ret = new ulong[values.Length]; for (var i = 0; i < values.Length; i++) { var obj = values.GetValue(i); var asT = (T)Utils.NonNull(obj); ret[i] = Utils.EnumToULong(asT); } return(ret); } return(Array.Empty <ulong>()); }
private static ulong[] CreateULongValues() { var enumType = typeof(T).GetTypeInfo(); // note that this is different from CreateValues() // which means these don't match like they do in formatting if (!enumType.IsFlagsEnum()) { // only need ULongValues for [Flags] enums return(Array.Empty <ulong>()); } var values = Enum.GetValues(enumType); var ret = new ulong[values.Length]; for (var i = 0; i < values.Length; i++) { var obj = values.GetValue(i); obj = Utils.NonNull(obj); ret[i] = Utils.EnumToULong((T)obj); } return(ret); }