C#显式类型参数

示例

在不同的情况下,您必须明确指定通用方法的类型参数。在以下两种情况下,编译器均无法从指定的方法参数推断所有类型参数。

一种情况是没有参数时:

public void SomeMethod<T, V>() 
{
   // 没有代码简化
}

SomeMethod(); // 不编译
SomeMethod<int, bool>(); // 编译

第二种情况是一个(或多个)类型参数不属于方法参数:

public K SomeMethod<K, V>(V input)
{
    return default(K);
}

int num1 = SomeMethod(3); // 不编译
int num2 = SomeMethod<int>("3"); // 不编译
int num3 = SomeMethod<int, string>("3"); // 编译.