Сокращение при вызове общих методов в C #

Если у меня есть метод

void foo<T>(T bar){}

, я могу успешно вызвать его следующим образом:

string s = string.Empty;
foo(s);

Как я полагаю, компилятор / среда выполнения может сделать вывод тип,

Однако, если я изменю метод на этот:

T foo<T,T2>(T2 bar){...}

Тогда я должен вызвать его в «полном», указав как тип входного параметра, так и тип возвращаемого значения:

string s = string.Empty;
foo<int,string>(s);

Есть ли способ, которым я могу сократить это так что мне не нужно указывать тип входных параметров? I.E.

foo<int>(s);

Спасибо

5
задан Simon Cowen 9 December 2011 в 11:27
поделиться