Предположим, что перечисление:
public enum SysLogsAppTypes { None, MonitorService, MonitorTool };
и вот функция для преобразования из представления ToString()
обратно в enum
:
private SysLogsAppTypes Str2SysLogsAppTypes(string str)
{
try
{
SysLogsAppTypes res = (SysLogsAppTypes)Enum
.Parse(typeof(SysLogsAppTypes), str);
if (!Enum.IsDefined(typeof(SysLogsAppTypes), res))
return SysLogsAppTypes.None;
return res;
}
catch
{
return SysLogsAppTypes.None;
}
}
Есть ли способ сделать это Generic?
Я пробовал:
private T Str2enum<T>(string str)
{
try
{
T res = (T)Enum.Parse(typeof(T), str);
if (!Enum.IsDefined(typeof(T), res)) return T.None;
return res;
}
catch
{
return T.None;
}
}
но я получаю:
"T" - это "параметр типа", который недействителен в данном контексте
где T.None
Любая помощь? Спасибо