显式类型参数
在不同情况下,你必须明确指定泛型方法的类型参数。在以下两种情况下,编译器都无法从指定的方法参数推断出所有类型参数。
一种情况是没有参数:
public void SomeMethod<T, V>()
{
// No code for simplicity
}
SomeMethod(); // doesn't compile
SomeMethod<int, bool>(); // compiles
第二种情况是当一个(或多个)类型参数不是方法参数的一部分时:
public K SomeMethod<K, V>(V input)
{
return default(K);
}
int num1 = SomeMethod(3); // doesn't compile
int num2 = SomeMethod<int>("3"); // doesn't compile
int num3 = SomeMethod<int, string>("3"); // compiles.