2012-10-10 224 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(); 
相關問題