Załóżmy ENUM:Generic ciąg ENUM konwersji
public enum SysLogsAppTypes { None, MonitorService, MonitorTool };
i tutaj jest funkcja konwersji z powrotem do reprezentacji 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;
}
}
Czy istnieje sposób, aby ten Generic ??
Próbowałem:
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;
}
}
ale otrzymuję: 'T' jest 'parametr typ', który nie jest ważny w danym kontekście
gdzie istnieje T.None
Wszelkie Wsparcie ? Dzięki
Wystarczy zastąpić domyślną '(T) dla' 'T.None' i jesteś gotowy do pracy. – thecoop