我对Enum
s。
首先,我宣布我的课程是这样的:
public class MyClass<TEnum> where TEnum : struct, IConvertible
但是,我收到一条错误,指出我的类不能与类型参数一起使用。
此外,我需要将Enum
的值转换为Integer
。我怎么能这样做?
public void SomeMethod(TEnum value)
{
int a = (int)value; // Doesn't work, need to cast to Enum first (?).
}
感谢。
答案 0 :(得分:1)
自您声明要求IConvertible以来,您已经拥有了所需的内容。只需使用ToInt32等方法:
public class MyClass<TEnum> where TEnum: struct, IConvertible
{
public int SomeMethod(TEnum value)
{
return value.ToInt32(null);
}
}
例如.NET类型decimal是一个结构和一个IConvertble:
MyClass<decimal> test = new MyClass<decimal>();
Console.WriteLine(test.SomeMethod(150m));
对于其他课程,请确保您实施IConvertible。
答案 1 :(得分:0)
您已声明您的通用类型参数以实现IConvertible
,并且该接口具有ToInt32
方法。