System.Enum.GetUnderlyingType C# (CSharp) Метод

GetUnderlyingType() приватный Метод

private GetUnderlyingType ( Type enumType ) : Type
enumType Type
Результат Type
        public static Type GetUnderlyingType(Type enumType)
        {
            if (enumType == null)
                throw new ArgumentNullException("enumType");

            // Make this function working for EnumBuilder. JScript uses it.
            if (enumType is EnumBuilder)
            {
                return ((EnumBuilder)enumType).UnderlyingSystemType;
            }

            if (!(enumType is RuntimeType))
                throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "enumType");

            if (!enumType.IsEnum)
                throw new ArgumentException(Environment.GetResourceString("Arg_MustBeEnum"), "enumType");

            return InternalGetUnderlyingType(enumType);
        }
        

Usage Example

        public static List <IEnumValue> GetEnumValues(Type type)
        {
            if (type is null)
            {
                throw new ArgumentNullException(nameof(type));
            }

            if (type.IsEnum)
            {
                List <IEnumValue> Values = new List <IEnumValue>();

                foreach (string Name in Enum.GetNames(type))
                {
                    Values.Add(
                        new EnumValue()
                    {
                        Value = Convert.ChangeType(
                            Enum.Parse(type, Name),
                            Enum.GetUnderlyingType(type)
                            ).ToString(),
                        Label = Name
                    });
                }

                return(Values);
            }
            else
            {
                return(null);
            }
        }
All Usage Examples Of System.Enum::GetUnderlyingType