将整数转换为具有不同基础类型的通用枚举类型
cast integer to generic enum types that have a different underlying type
以下函数仅在参数类型与T
的基础类型相同时有效。我怎样才能让它适用于所有枚举? (我不关心缩小或扩大)
public T Cast<T>(int i) where T : Enum
{
return (T)(object)i;
}
你可以这样做,例如:
public static T Cast<T>(int i) where T : Enum {
return (T)Convert.ChangeType(i, Enum.GetUnderlyingType(typeof(T)));
}
以下函数仅在参数类型与T
的基础类型相同时有效。我怎样才能让它适用于所有枚举? (我不关心缩小或扩大)
public T Cast<T>(int i) where T : Enum
{
return (T)(object)i;
}
你可以这样做,例如:
public static T Cast<T>(int i) where T : Enum {
return (T)Convert.ChangeType(i, Enum.GetUnderlyingType(typeof(T)));
}