首页 > 后端开发 > C++ > 如何从 C# 中的枚举中获取用户友好的字符串?

如何从 C# 中的枚举中获取用户友好的字符串?

Linda Hamilton
发布: 2025-01-23 03:47:08
原创
796 人浏览过

How Can I Get User-Friendly Strings from Enums in C#?

在 C# 中显示具有人类可读字符串的枚举

枚举对于表示命名常量很有价值,但直接显示它们的值通常对用户来说缺乏清晰度。本指南演示了如何将枚举值映射到用户友好的字符串,而不需要反向字符串到值的转换。

该解决方案利用了 Description 中的 System.ComponentModel 属性。 通过将此属性应用于枚举成员,您可以为每个值提供更具描述性的标签。

示例:

<code class="language-csharp">private enum PublishStatusValue
{
    [Description("Not Completed")]
    NotCompleted,
    Completed,
    Error
}</code>
登录后复制

检索用户友好的字符串:

以下扩展方法检索描述或枚举的默认字符串表示(如果未找到描述):

<code class="language-csharp">public static string GetDescription<T>(this T enumerationValue)
    where T : struct
{
    Type type = enumerationValue.GetType();
    if (!type.IsEnum)
    {
        throw new ArgumentException("EnumerationValue must be of Enum type", "enumerationValue");
    }

    MemberInfo[] memberInfo = type.GetMember(enumerationValue.ToString());
    if (memberInfo != null && memberInfo.Length > 0)
    {
        object[] attrs = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
        if (attrs != null && attrs.Length > 0)
        {
            return ((DescriptionAttribute)attrs[0]).Description;
        }
    }
    return enumerationValue.ToString();
}</code>
登录后复制

该方法有效地提供了用户友好的输出,增强了代码可读性和用户体验。

以上是如何从 C# 中的枚举中获取用户友好的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板