顯式型別引數
在不同情況下,你必須明確指定泛型方法的型別引數。在以下兩種情況下,編譯器都無法從指定的方法引數推斷出所有型別引數。
一種情況是沒有引數:
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.