我在这里不明白什么?
我可以要求T是一个枚举,但是我不能将T类型的变量强制转换为int。
public static List<int> EnumToInts<T>() where T : System.Enum
{ ... }
我可以这样做:
T te = (T)Enum.Parse(typeof(T), name);
但是如果我尝试将te强制转换为int
int ti = (int)te
我知道
'无法将T类型转换为int'
没关系
var e = Enum.Parse(typeof(T), name);
int i = (int)e;
但是这里的int类型不是:
T te = (T)Enum.Parse(typeof(T), name);
int ti = (int)te;
这是怎么了?我不明白吗?
public static List<int> EnumToInts<T>() where T : System.Enum
{
List<int> l = new List<int>();
Type type = typeof(T);
string[] names = Enum.GetNames(type);
foreach (var name in names)
{
var e = Enum.Parse(type, name);
l.Add((int)e);
T te = (T)Enum.Parse(type, name);
l.Add((int)te);
}
return l;
}