问题描述
错误:类型“类型名称”必须是不可为空的值类型,才能将其用作泛型类型或方法“通用标识符”中的参数“参数名称”
$\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>
,因为性能会更好。