2008-10-03 7 views

Répondre

16
MyEnum enumValue = (MyEnum)Enum.Parse(typeof(MyEnum), "B"); 

Vous avez également une surcharge insensible à la casse.

2

Je suppose que vous n'avez pas accès à MyEnum, pour typeof (MyEnum):

void foo(Type t) 
{ 
    Object o = Enum.Parse(t, "B"); 
} 
1

Vous pouvez le faire avec les génériques. J'ai créé une classe utilitaire pour envelopper ceci:

public static class Utils { 
    public static T ParseEnum<T>(string value) { 
     return (T)Enum.Parse(typeof(T), value, true); 
    } 

invoqua alors comme:

string s = "B"; 
MyEnum enumValue = Utils.ParseEnum<MyEnum>(s); 
Questions connexes