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); } }