我们如何扩展所有枚举类型?

How can we extend all enum type?

我们如何扩展所有枚举类型?

我想用一种名为 "ToStringConstant" 的新方法扩展所有枚举类型。此方法将 return 整数值作为 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"   
}

不要使方法通用,只接受 Enum:

public static string ToStringConstant(this Enum EnumVar)
{
    return ((int)EnumVar).ToString();
}

附带说明,强制转换为 long 而不是 int 将确保代码正常运行,而不管枚举的基础类型如何。