如果使用泛型方法重载的话,使用哪个方法取决于调用方法时指定的泛型类型参数个数。
public void ProcessT<T>(T op1)
{
}
public void ProcessT<T,U>(T op1)
{
}
那么如果打算使用一个泛型类型参数,但一种是用INT,还有一种是string型的,如何决定使用哪一种方法呢?

解决方案 »

  1.   


    public void ProcessT <T >(T op1) 


    public void ProcessT <T,U >(T op1) 

    }string op= string.Empty;
    ProcessT<string>(op);//使用public void ProcessT <T>(T op1) 
    ProcessT<string,int>(op);//使用public void ProcessT <T,U >(T op1)  
      

  2.   

    是不是可疑理解为:如果要在方法体内使用两个不同的标识符,就要使用public void ProcessT <T,U >(T op1)
    如果使用一个标识符,就用public void ProcessT <T>(T op1)。
    int number = 0;public void Process (int op1)
    {
      number += op1;
    }public void Process (string op1)
    {
      Console.Writeline(op1);
    }这两个函数不能转变成一个public void ProcessT <T>(T op1)吧?
      

  3.   

    如果按你说的,是可以的,因为泛型是可以约束的public void ProcessT  <T >(T op1) where ValueType,ToString()
    {
         T number += op1;
         Console.WriteLine(number.ToString());
    }是否可以执行就不一定了。呵呵。估计可以。
      

  4.   

    看来不能这样写。的确不能,这个情况下不适合用泛型。用泛型是要尽可能的和类型特性无关的。比如List,Queue,Stack这些。