我有一个类的泛型方法:
public record OperationCollectionGeneric<OPERATIONTYPE> where OPERATIONTYPE: notnull, Enum
{
public OPERATIONTYPE Group { get; }
public OperationCollectionGeneric(string part1, string? part2 = null, string? part3 = null)
{
Group = Enum.Parse<OPERATIONTYPE>(part1, true);
}
Enum.Parse()
方法有以下错误:
错误CS0453类型'OPERATIONTYPE'必须是一个非空值类型,以便将其用作泛型类型或方法'Enum '中的参数'TEnum'。解析(ReadOnlySpan bool)
如何传递确保OPERATIONTYPE参数是Enum类型
我试图使用where
keywork来设置OPERATIONTYPE
的枚举类型,但它不起作用。
Enum.Parse
仅限于struct
,因此更改通用约束以匹配它:
public record OperationCollectionGeneric<OPERATIONTYPE> where OPERATIONTYPE : struct, Enum
OPERATIONTYPE必须为非空值类型,但System.Enum
是引用类型