泛型小问题..

NewManC 2009-03-25 07:28:40
刚刚接触泛型..

请问以下程序为什么不行?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 泛型接口
{
public interface Add<T>
{
T add(T x, T y);
}

class math<T> : Add<T>
{
public T add(T x, T y)
{
return x + y;
}
}

class Program
{
static void Main(string[] args)
{
math<int> s = new math<int>();
int z = s.add(4, 7);
Console.WirteLine(z);
Console.Read();
}
}
}



Error Info: 运算符“+”无法应用于“T”和“T”类型的操作数
...全文
80 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cja03 2009-03-25
  • 打赏
  • 举报
回复
需要重载运算符
cppfaq 2009-03-25
  • 打赏
  • 举报
回复
也没有办法添加相应的operator+约束。
lchh0917 2009-03-25
  • 打赏
  • 举报
回复
学习~
gisyellow 2009-03-25
  • 打赏
  • 举报
回复
需要重载运算符
ViewStates 2009-03-25
  • 打赏
  • 举报
回复
两个泛型怎么相加?
你可以选择重载+/-运算符
宝_爸 2009-03-25
  • 打赏
  • 举报
回复
这里还有官方的建议:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=304501
宝_爸 2009-03-25
  • 打赏
  • 举报
回复
T可以初始化成任意类型,很多类型不支持+运算符的。因此报错。

这篇帖子有详细的讨论,你可以看看,有些walkaround可以借鉴一下:
Operator '+' cannot be applied to operands of type 'T' and 'T'
http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/6317290d-bbfb-46f6-812b-7f4252ce3f27/
NewManC 2009-03-25
  • 打赏
  • 举报
回复
Console.WirteLine(z);



Console.WriteLine(z);

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧