A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马林康 中级黑马   /  2012-7-24 11:53  /  2894 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 马林康 于 2012-7-24 12:05 编辑
  1.         public T add<T> (T value1, T value2)
  2.         {
  3.             return value1 + value2;
  4.         }
复制代码
出现错误:错误 1 运算符“+”无法应用于“T”和“T”类型的操作数
如何对T进行限定 实现+运算?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

2 个回复

正序浏览
许庭洲 发表于 2012-7-24 12:45
public T add (T value1, T value2): struct, IConvertible   
{
    if (typeof(T) == typeof(DateTime)) ...

:'(看不懂 和DateTime有关系吗?
回复 使用道具 举报
public T add<T> (T value1, T value2): struct, IConvertible   
{
    if (typeof(T) == typeof(DateTime)) //手动排除不可运算的值类型...
    {
        throw new ArgumentException("T");
    }
   
    return value1 + value2;; //或者使用 IConvertible 辅助处理...
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马