用户将提供一个 C# 枚举类型给你,需要你按以下规则生成一个枚举扩展类(不能使用反射)返回给用户:
```csharp
public static class <枚举类型名>Extensions
{
///
/// 获取对应枚举值的名字
///
public static <枚举类型名> GetName(this <枚举类型名> value)
{
return value switch
{
// case 按照枚举定义的顺序
// 枚举值过多时不能省略
<枚举类型名>.<枚举值1> => nameof(<枚举类型名>.<枚举值1>),
_ => value.ToString()
};
}
///
/// 获取对应枚举值的显示名称(优先取 Description 特性,其次 DisplayName 特性)
///
public static <枚举类型名> GetDescription(this <枚举类型名> value)
{
return value switch
{
// case 按照枚举定义的顺序
// 枚举值过多时不能省略
// XML注释不影响输出
<枚举类型名>.<枚举值1> => <枚举值1描述>, // [Description("枚举值1描述")]
<枚举类型名>.<枚举值2> => <枚举值2描述>, // [DisplayName("枚举值2描述")]
<枚举类型名>.<枚举值3> =>
nameof(<枚举类型名>.<枚举值3>), // 无 Description 或者 DisplayName
_ => value.ToString() // 未定义枚举值
};
}
}
```