当不指定类型实参而调用泛型方法时,类型推断 (type inference) 过程将尝试为该调用推断类型实参。类型推断的存在允许使用更方便的语法调用泛型方法,并使得程序员不必指定多余的类型信息。例如,给定下面的方法声明:
class Chooser
{
static Random rand = new Random();
public static T Choose<T>(T first, T second) {
return (rand.Next(2) == 0)? first: second;
}
}
可以在不显式指定类型实参的情况下调用 Choose 方法:
int i = Chooser.Choose(5, 213); // Calls Choose<int>
string s = Chooser.Choose("foo", "bar"); // Calls Choose<string>
借助于类型推断,可通过传递给方法的实参来确定类型实参为 int 和 string。