Подтвердить что ты не робот

Вывод типа группы методов С#

Я пытаюсь написать общий метод, который поставляет параметры и вызывает функцию, например:

class MyClass {
    public int Method(float arg) => 0;
}

TResult Call<T1, TResult>(Func<T1, TResult> func) =>
    func(default(T1));

void Main()
{
    var m = new MyClass();
    var r1 = Call<float, int>(m.Method);
    var r2 = Call(m.Method); // CS0411
}

Последняя строка не скомпилируется с CS0411. Есть ли какое-либо обходное решение, чтобы получить вывод типа для работы здесь?

Случай использования: с помощью AutoFixture для генерации параметров вызова функции.

4b9b3361

Ответ 1

К сожалению нет, это ограничение вывода типа в С#. Это действительно не так много с типами возвращаемых данных, что необходимо в вашем случае для полного вывода общих аргументов Call<>.