public delegate T GenDel<T>();
class Program
{
public static void genMet<T>(GenDel<T> d) { }
static void Main(string[] args)
{
genMet(new GenDel<string>(() => "Works"));
genMet(() => "Works");
}
}
上記の例では、ジェネリック メソッドはラムダ式をパラメーター ( genMet(() => "Works");
) として受け取り、このラムダ式メソッドからパラメーターの型を推測できます。
メソッドが次の例でパラメーターの型を推測できないのはなぜですか。ここでは、ラムダ式の代わりにデリゲート インスタンスをパラメーターとして渡します。
genMet(new GenDel(() => "Doesn't work")); // Error: Using the generic type 'GenDel<T>'
// requires 1 type arguments