Cannot define T in C#
本问题已经有最佳答案,请猛点这里访问。
在这段代码中有什么关于如何定义t的线索吗?
1 2 3 4 5 6 7 8 9 10 | public static T ToEnum<T>(this string value, T defaultValue) { if (string.IsNullOrEmpty(value)) { return defaultValue; } T result; return Enum.TryParse<T>(value, true, out result) ? result : defaultValue; } |
Severity Code Description Project File Line Error CS0453 The type 'T'
must be a non-nullable value type in order to use it as parameter
'TEnum' in the generic type or method 'Enum.TryParse(string,
bool, out TEnum)'
尝试使用
1 2 3 4 5 6 7 8 9 10 11 | public static T ToEnum<T>(this string value, T defaultValue) where T : struct { if (string.IsNullOrEmpty(value)) { return defaultValue; } T result; return Enum.TryParse<T>(value, true, out result) ? result : defaultValue; } |
我还没有测试过。