C# 不能在C中定义T#
在这段代码中有没有关于如何定义T的线索C# 不能在C中定义T#,c#,.net,C#,.net,在这段代码中有没有关于如何定义T的线索 public static T ToEnum<T>(this string value, T defaultValue) { if (string.IsNullOrEmpty(value)) { return defaultValue; } T result; return
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;
}
public static T ToEnum(此字符串值,T defaultValue)
{
if(string.IsNullOrEmpty(value))
{
返回默认值;
}
T结果;
返回Enum.TryParse(value,true,out result)?结果:defaultValue;
}
严重性代码说明项目文件行错误CS0453类型为“T”
必须是不可为null的值类型才能将其用作参数
泛型类型或方法“Enum.TryParse(字符串、,
bool,out TEnum)'
尝试使用
约束
获得一个值类型,该值类型为结构
,例如:
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;
}
public static T ToEnum(此字符串值,T defaultValue)
其中T:struct
{
if(string.IsNullOrEmpty(value))
{
返回默认值;
}
T结果;
返回Enum.TryParse(value,true,out result)?结果:defaultValue;
}
我还没有测试过它。@PetSerAl请写出完整的代码作为答案。非常感谢。请阅读。如果你能定义“this”,你可以搜索它。你想要“枚举的泛型类型约束”吗?比我快一秒!它给出了错误严重性代码描述项目文件行错误CS0451“new()”约束不能与“struct”约束一起使用尝试使用“Enum”作为约束!只需删除
,new()
OP,枚举不能是“新的”,其中T:enum
在C#中不是有效的模板约束。