c#枚举自定义字符串类型
时间: 2023-08-08 09:06:42 浏览: 122
在 C# 中,我们可以使用 Description 特性来为枚举成员自定义字符串值,以便更好地描述该枚举成员。
下面是一个示例代码:
```
using System;
using System.ComponentModel;
enum Fruit
{
[Description("This is an apple")]
Apple,
[Description("This is a banana")]
Banana,
[Description("This is an orange")]
Orange
}
class Program
{
static void Main(string[] args)
{
Fruit myFruit = Fruit.Banana;
// 使用 GetDescription 方法获取枚举成员的描述
string myFruitString = GetDescription(myFruit);
Console.WriteLine(myFruitString);
}
// 通过反射获取枚举成员的描述
static string GetDescription(Enum value)
{
var fieldInfo = value.GetType().GetField(value.ToString());
var attributes = (DescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
return attributes.Length > 0 ? attributes[0].Description : value.ToString();
}
}
```
输出结果为:
```
This is a banana
```
可以看到,我们通过在枚举成员上标记 Description 特性来自定义字符串值,然后使用 GetDescription 方法获取该枚举成员的描述。
阅读全文