首页 新闻 搜索 专区 学院

泛型方法怎么定义函数体

0
悬赏园豆:20 [已解决问题] 解决于 2011-04-08 13:58
public T AddCaculate(T num1,T num2)

 这样的泛型函数可以怎么实现返回 num1+num2 有办法吗?

blueker_li的主页 blueker_li | 初学一级 | 园豆:20
提问于:2011-03-17 18:38
< >
分享
最佳答案
-1

我想你的需求不是很明确,即你不知道你的函数用来做什么。

如果你是想给你的范型参数加一个约束的话,可以考虑:

public T AddCaculate(T num1,T num2) where T : System.IList<T>

 

收获园豆:10
Jerry Chou | 老鸟四级 |园豆:2642 | 2011-03-18 12:57
我想实现一个加法计算,无论传入是 float ,double 还是 int 都能执行 如果是其他类型 只throw 一个 exception 出去
blueker_li | 园豆:20 (初学一级) | 2011-03-18 17:14
使用运行时检查
public T AddCaculate(T num1, T num2)
{
if(typeof(int) == typeof(num1))
.....

else
throw exception

}
Jerry Chou | 园豆:2642 (老鸟四级) | 2011-03-20 15:08
其他回答(3)
0

很难,T 可能是任何类,如,List, Form, Label,  大多数相加没意义。

收获园豆:5
鹤冲天 | 园豆:2379 (老鸟四级) | 2011-03-17 21:14
0

我觉得这个和你想用这个函数做什么有关吧。

比如你想实现int float等类型到相加,完全可以实现这么个范型函数啊,LS说List, Form, Label,  大多数相加没意义,你可以不拿那些类型到做参数嘛。

收获园豆:5
Rusty's code | 园豆:410 (菜鸟二级) | 2011-03-18 09:07
0

你首先要指定T是哪个类或是其它类型,然后再明确返回类型是double,还是float类型。

一直在跑wu | 园豆:150 (初学一级) | 2011-03-19 11:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册