【发布时间】:2015-04-29 20:49:43
【问题描述】:
如果在编译时已知枚举名称和键,我知道如何找到枚举值。我有一种情况,我在运行时获得了枚举名称。任何建议如何实现这一目标。
using System;
namespace EnumDemo
{
internal class Program
{
private static void Main(string[] args)
{
string[] ArrItemNames = Enum.GetNames(typeof (EnumClass.Colors));
foreach (string ItemName in ArrItemNames)
{
Console.WriteLine(
"{0} = {1:D}", ItemName,
Enum.Parse(typeof (EnumClass.Colors), ItemName));
}
Console.WriteLine();
var EnumVal = GetEnumValue("Colors", "Red");// Here I am expecting 1
Console.ReadKey();
}
//
public static int GetEnumValue(string EnumName, string ItemName)
{
return 0;
}
}
public class EnumClass
{
public enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };
}
}
注意:我的枚举在一个类中。
【问题讨论】:
-
这是吹毛求疵,但在 c# 中方法的参数应该小写。
-
我已经在那里尝试过上述答案。但是,它不起作用。 Type.GetType("EnumDemo.EnumClass.Colors") 给出 null
-
我认为这不是一个重复的问题。枚举不在任何类中。但是,就我而言,它在一个班级内。我遇到问题只是因为我的枚举在一个类中。
-
既然你似乎知道你的枚举类型,你可以直接选择类型,我已经相应地修改了我的答案