如何将泛型类型作为参数传递给enumt . parse()



我有一个类的泛型方法:

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类型

我试图使用wherekeywork来设置OPERATIONTYPE的枚举类型,但它不起作用。

Enum.Parse仅限于struct,因此更改通用约束以匹配它:

public record OperationCollectionGeneric<OPERATIONTYPE> where OPERATIONTYPE : struct, Enum

OPERATIONTYPE必须为非空值类型,但System.Enum是引用类型

最新更新