我有这样的枚举。
public enum eTypeVar
{
Int,
Char,
Float
};
我希望将其转换为类型,执行以下操作:
eTypeVar type=eTypeVar .Int;
string str= eTypeVar.ToString .ToLower();
(str as type) a=1;
我该怎么做?
答案 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();