如何将枚举转换为类型

时间:2012-10-10 11:17:52

标签: c# string types enums

我有这样的枚举。

public enum eTypeVar
{
    Int,
    Char,
    Float
};

我希望将其转换为类型,执行以下操作:

eTypeVar type=eTypeVar .Int;
string str= eTypeVar.ToString .ToLower();
(str as type) a=1;

我该怎么做?

3 个答案:

答案 0 :(得分:4)

您可以使用Enum.Parse,例如:

YourEnumType realValue = Enum.Parse(typeof(YourEnumType), "int");

答案 1 :(得分:0)

我认为你需要的是:

Dictionary<eTypeVar, Type> _Types = new Dictionary<eTypeVar, Type> {
    { eTypeVar.Int, typeof(Int32) },
    { eTypeVar.Char, typeof(Char) },
    { eTypeVar.Float, typeof(Single) }
};

public Boolean Check(eTypeVar type, Object value)
{
    return value.GetType() == _Types[type];
}

您无法将变量转换为另一个变量声明的类型。你应该重新考虑你的设计。无论如何,它并没有使你正在做的事情。如果您知道要使用int,为什么不声明它:

String name = "int";
int value = 1;

如果您出于某些原因想拥有动态代码,可以使用Reflection和通用方法。

public void DoSomething<T>(T value)
{
    ....
}

然后你可以在运行时construct使用反射和invoke方法。但是在这个时候,我认为你需要更多的C#基础知识才能使用这些功能。

答案 2 :(得分:0)

你可以尝试这个...... 例如,你有这样的枚举

  public enum Emloyee
 {
   None = 0,
  Manager = 1,
  Admin = 2,
  Operator = 3
}

然后将枚举转换为此

Emloyee role = Emloyee.Manager;
int roleInterger = (int)role;

结束enum to string ..

Emloyee role = Emloyee.Manager;
string roleString = role.ToString();