C#编程中,枚举用于定义一组固定的值,枚举变量只能取枚举中定义的值。然而,默认情况下,枚举成员只是数值,在某些情况下不够直观。因此,问题是如何为枚举赋予更友好的名称。
为了给枚举成员赋予更易于理解的名称,可以使用 Description 属性。这允许为每个枚举成员指定一个描述性文本字符串。然后,可以使用扩展方法来获取此描述:
<code class="language-csharp">public static string GetDescription(this Enum value) { Type type = value.GetType(); string name = Enum.GetName(type, value); if (name != null) { FieldInfo field = type.GetField(name); if (field != null) { DescriptionAttribute attr = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute; if (attr != null) { return attr.Description; } } } return null; // 或抛出异常,视情况而定 }</code>
使用方法如下:
<code class="language-csharp">public enum MyEnum { [Description("Foo 的描述")] Foo, [Description("Bar 的描述")] Bar } MyEnum x = MyEnum.Foo; string description = x.GetDescription();</code>
以上是如何为 C# 枚举提供友好名称?的详细内容。更多信息请关注PHP中文网其他相关文章!