日期:2014-05-18  浏览次数:20901 次

我自己创建的泛型类有些问题,请高手帮忙看看。
using System;
using System.Collections.Generic;
using System.Text;

namespace 定制泛型类
{
  /// <summary>
  /// 创建自定义泛型类
  /// </summary>
  /// <typeparam name="T">指定泛型类的类型</typeparam>
  public class GenericList<T>
  {
  public void Add(T input1,T input2) 
  {
  Console.WriteLine("结果是:{0}", input1 + input2); //这句有错误。
  }
  }

  /// <summary>
  /// 测试泛型类
  /// </summary>
  class Program
  {
  static void Main(string[] args)
  {
  GenericList<int> gList = new GenericList<int>();
  gList.Add(1, 2);
  GenericList<string> gStrList = new GenericList<string>();
  gStrList.Add("1", "2");
  Console.Read();
  }
  }
}
我的目的就是第一个Add的结果为3,第二个结果为"12",可是却提示错误“运算符“+”无法应用于“T”和“T”类型的操作数”这样的错误,正确的写法应该是什么?能把正确的答案给写出来吗?

------解决方案--------------------

我不懂泛型,不知道我这个方法你满意么?满意的话给我分谢谢~~!
C# code

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

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            gList<int> gList = new gList<int>();
            gList.Add(1, 2);
            gList<string> gStrList = new gList<string>();
            gStrList.Add("1", "2");
            Console.ReadKey(); 
        }
    }
    public class gList<T>
    {
        public void Add(int input1,int  input2)
        {
            Console.WriteLine("结果是:{0}", input1 + input2);  
        }
        public void Add(string  input1, string input2)
        {
            Console.WriteLine("结果是:{0}", input1 + input2); 
        } 
    }

------解决方案--------------------
并不是所有的TYPE都支持+号运算符的
泛形归根到底就是里面所有的运算要对任何类型都支持
所以+运算符肯定是不可能用在泛形里面的