'无法隐式转换... TEnum to ... System.Enum'

时间:2016-05-23 11:09:28

标签: c# generics enums

我的课程中包含以下内容:

public List<KeyValuePair<Enum, string>> Items { get; set; }

我尝试为其分配现有List<KeyValuePair<TEnum, string>>,但我正在接收

  

无法将TEnum隐式转换为System.Enum。

如何定义Items变量以将TEnum作为键?或者有更好的方法吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

假设TEnum是您班级的通用名称,只需使用它:

public class Whatever<TEnum>
{
    public List<KeyValuePair<TEnum, string>> Items { get; set; }
}

btw:很遗憾,您无法对通用设置枚举限制,因此您无法确定TEnumEnum

//Not possible
public class Whatever<TEnum> where TEnum : Enum