0

I have a enum like this.

public enum eTypeVar
{
    Int,
    Char,
    Float
};

and I want to convert it to type , to do something like this:

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

How would I do it?

4

3 回答 3

4

您可以使用Enum.Parse例如:

YourEnumType realValue = Enum.Parse(typeof(YourEnumType), "int");
于 2012-10-10T11:20:35.357 回答
0

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

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

然后将枚举转换为此

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

结束枚举到字符串..

Emloyee role = Emloyee.Manager;
string roleString = role.ToString();
于 2012-10-10T11:29:34.800 回答
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;

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

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

然后,您可以在运行时使用反射构造该方法并调用它。但此时我认为您需要更多的 C# 基础知识才能使用此功能。

于 2012-10-10T11:20:46.610 回答