从c#中任何枚举类型的枚举对象获取枚举名称和字符串值

Gus*_*sta -3 c# enums

我一直在努力实现这一目标。我似乎有一些类似的答案,但对我不起作用。我不是 C# 专家,所以请注意。(我什至不知道这是否有可能实现)

所有枚举都在同一个类中。所有数字都是唯一的。

我的问题:

enum BAR
{
    A = 0,
    B = 1
{

enum FOO
{
    C = 2,
    D = 3
}

public static string GetEnumName(object o)
{
    // Need help here
}

public static string GetName(object o)
{
    // Need help here
}
Run Code Online (Sandbox Code Playgroud)

使用示例:

GetEnumName(BAR.A); // 结果 = BAR

获取名称(BAR.A);// 结果 = A

GetEnumName(FOO.C); // 结果 = FOO

获取名称(FOO.C);// 结果 = C

Tim*_*ter 5

您可以使用这些方法(Enum用作参数类型而不是Object):

public static string GetEnumName(Enum input)
{
    return input.GetType().Name;
}

public static string GetName(Enum input)
{
    return Enum.GetName(input.GetType(), input);
}
Run Code Online (Sandbox Code Playgroud)

  • @GustavoBaiocchiCosta,您不必将 `object` 更改为 `Enum`,如果输入参数仍然是 `object`,上面的代码就可以正常工作,尽管类型安全性较低。 (2认同)