Giả sử enum:chuỗi Generic để enum chuyển đổi
public enum SysLogsAppTypes { None, MonitorService, MonitorTool };
và đây là một chức năng để chuyển đổi từ ToString()
đại diện trở lại 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;
}
}
Có cách nào để làm cho Generic này ??
tôi đã cố gắng:
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;
}
}
nhưng tôi nhận được: 'T' là một 'kiểu tham số', mà không phải là hợp lệ trong bối cảnh trao
nơi có T.None
Bất kỳ Cứu giúp ? Cảm ơn
Chỉ cần thay thế 'mặc định (T) 'cho 'T.None' và bạn tốt để đi. – thecoop