我如何从枚举类型的名称和int获取枚举名称

这个问题在这里已经有了答案:

  • 在int C中枚举21枚答案
  • 将字符串转换为在C#中键入[复制] 4个答案
  • 来自Value 6的Enum字符串名称的答案
  • 获取Enum值3的答案的名称
  • 当值已知6个答案时获取枚举名称

  • 除了enum本身的名称之外,您应该知道enum声明的名称空间和程序集。 假设你在程序集中运行下面的代码,其中定义了枚举,并且所有的枚举都在编译时在同一个命名空间中定义,你可以这样做:

    string dataType = "Cheese";
    int dataValue = 3;
    var enumType = Type.GetType("Namespaces.Of.Your.Enums." + dataType);
    var name = Enum.GetName(enumType, dataValue);
    

    如果您的枚举在另一个程序集中,而不是此代码正在运行 - 您将需要提供枚举类型的组合限定名称(再次使用名称空间)。


    Type t = Type.GetType(dataType)
    string value = Enum.GetName(t, dataValue)
    

    应该做的伎俩(未编译,在地铁上)


    enum.Parse()会在这里成为你的朋友。

    像这样:

    int cheeseType = 1;
    (Cheese)Enum.Parse(typeof(Cheese), cheeseType.ToString());
    
    链接地址: http://www.djcxy.com/p/22523.html

    上一篇: How can I get an enum name from the name of the enum type and an int

    下一篇: Assign int value to the custom enum property