public static T GetSum<T, K>(List<K> listArray)
where T : struct
{
T sum;
T temp;
for (int i = 0; i < listArray.Count; i++)
{
bool flag = T.TryParse(listArray[i].ToString(), out temp);
if (flag)
{
sum = sum + temp;
}
}
return sum;
}
1.计算listArray中的和放到sum中。
2.T、K可能类型是int double float等数值,K还可以示string类型。
3.程序报错,报错部分为上面红色。
肯定啊,你怎么知道T会有TryParse方法,你要这做得要限定泛型约束,楼上那个没什么关系`,你可以到MSDN上看下泛型约束
比如你T只能是值类型,那就约束T集成自他们的共有父类.就是那个值类型都集成自那个类型
反正就是你如果不加约束那T就可以是任意类型,明显任意类型只能调用object类上的方法,你想调用其它方法的话得要给这个泛型加约束
如何加才能用TryParse方法?
需要对T K做类型判断,然后再处理,任意类型你没法转换
如何加才能用TryParse方法?