我们如何扩展所有枚举类型?
我想用一个名为“ToStringConstant”的新方法扩展所有枚举类型。此方法将整数值作为String返回。这是我到目前为止所做的,但是编译器不允许在where子句中使用枚举。
public static string ToStringConstant<T>(this T EnumVar) where T : enum
{
return ((int)EnumVar).ToString();
}
示例:
public enum Example
{
Example = 0
}
void Method()
{
Example var = Example.Example;
var.ToString();//Return "Example"
var.ToStringConstant();//Return "0"
}
答案 0 :(得分:3)
不要让方法通用,只需接受Enum
:
public static string ToStringConstant(this Enum EnumVar)
{
return ((int)EnumVar).ToString();
}
在旁注中,转换为long
而不是int
将确保代码无论枚举的基础类型如何都会起作用。