Как передать Enum в качестве аргумента? - PullRequest
2 голосов
/ 14 августа 2011

В приведенном ниже коде я просто покрываю строку (например, "medium") до значения Enum. Мне нужно уметь вместо Opacity иметь фиксированный тип Enum, передать его в качестве аргумента, чтобы функция работала с любым Enum. Кажется, это оказывается сложнее, чем я ожидал, то есть «Enum MyEnum» не работает. Решения кто-нибудь?

public enum Opacity
{
    Low,
    Medium,
    High
}

public static Enum StringToEnum(String str)
{            
    return (Opacity)Enum.Parse(typeof(Opacity), str, true);  // Case insensitive             
}

1 Ответ

9 голосов
/ 14 августа 2011
public static T StringToEnum<T>(String str) where T : struct
{
    return (T)Enum.Parse(typeof(T), str, true);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...