2012-10-10 178 views
0

我有这样的枚举。如何将枚举转换为类型

public enum eTypeVar 
{ 
    Int, 
    Char, 
    Float 
}; 

,我想将它转化成打字,做这样的事情:

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

我会怎么做呢?

+1

枚举在哪里?你想达到什么目的? –

+3

如果您可以解释您尝试解决的问题而不是您尝试创建的解决方案,那可能会更好。 – Stijn

+0

我有枚举,其中包含“int”“char”ec –

回答

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]; 
} 

您可以将变量不能转换成一个类型为另一个变量声明。你应该重新考虑你的设计。无论如何,它不会让你在做什么。如果你想有一些原因,你可以使用 Reflection和通用方法动态代码

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

:如果你知道你要使用一个INT,为什么不申报。

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

然后你可以使用反射和 invokeconstruct在运行时的方法。但是现在我认为你需要更多的C#基础来处理这个功能。

+0

我不知道它的int我编辑的排队 –

+0

@HodayaShalom编辑我的答案。 –

+0

我用这个枚举创建一个变量,并且我想检查是否适合他的类型值 –

3

可以使用Enum.Parse如:

YourEnumType realValue = Enum.Parse(typeof(YourEnumType), "int"); 
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(); 
相关问题