Пример #1
0
        internal string FormatInternal(TInt value, ref bool isInitialized, ref EnumMemberInternal <TInt, TIntProvider> member, EnumFormat format)
        {
            if (format == EnumFormat.DecimalValue)
            {
                return(value.ToString());
            }
            if (format == EnumFormat.HexadecimalValue)
            {
                return(value.ToString(Provider.HexFormatString, null));
            }
            if (!isInitialized)
            {
                member        = GetEnumMember(value);
                isInitialized = true;
            }
            switch (format)
            {
            case EnumFormat.Name:
                return(member?.Name);

            case EnumFormat.Description:
                return(member?.GetAttribute <DescriptionAttribute>()?.Description);

#if ENUM_MEMBER_ATTRIBUTE
            case EnumFormat.EnumMemberValue:
                return(member?.GetAttribute <EnumMemberAttribute>()?.Value);
#endif
            default:
                format.Validate(nameof(format));
                return(member != null?Enums.CustomEnumMemberFormat(member.EnumMember, format) : null);
            }
        }