EnumsNET 将枚举转换为列表的通用方法

问题描述

错误:类型“类型名称”必须是不可为空的值类型,才能将其用作泛型类型或方法“通用标识符”中的参数“参数名称

$\times$

我正在尝试编写将枚举 [Description] 属性映射到类 GenericEnum 的泛型类。问题在于 Enums.Net .Asstring 方法,因为它无法转换为 T。

有什么建议吗?

解决方法

您需要将函数中的 T 约束为 struct,Enum

 public static List<GenericEnum> GetEnumSelection<T>() where T : struct,Enum

顺便说一句,如果您使用的是 Enum.NET,您可能应该改用它们的 Enums.GetValues<T>,因为性能会更好。