首页 新闻 会员 周边

泛型返回值问题(C#)

0
悬赏园豆:10 [已解决问题] 解决于 2014-03-22 07:46

 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.程序报错,报错部分为上面红色。

 

荣码一生的主页 荣码一生 | 初学一级 | 园豆:163
提问于:2014-03-20 08:52
< >
分享
最佳答案
0
收获园豆:4
Launcher | 高人七级 |园豆:45045 | 2014-03-20 09:19
其他回答(2)
0

肯定啊,你怎么知道T会有TryParse方法,你要这做得要限定泛型约束,楼上那个没什么关系`,你可以到MSDN上看下泛型约束

比如你T只能是值类型,那就约束T集成自他们的共有父类.就是那个值类型都集成自那个类型

反正就是你如果不加约束那T就可以是任意类型,明显任意类型只能调用object类上的方法,你想调用其它方法的话得要给这个泛型加约束

收获园豆:3
吴瑞祥 | 园豆:29449 (高人七级) | 2014-03-20 09:41

如何加才能用TryParse方法?

支持(0) 反对(0) 荣码一生 | 园豆:163 (初学一级) | 2014-03-20 15:52
0

需要对T K做类型判断,然后再处理,任意类型你没法转换

收获园豆:3
钱耀祖 | 园豆:44 (初学一级) | 2014-03-20 10:25

如何加才能用TryParse方法?

支持(0) 反对(0) 荣码一生 | 园豆:163 (初学一级) | 2014-03-20 15:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册