Компилятор не может определить общие типы при передаче метода

У меня проблемы с C # и универсальным типом вывод. Я хочу написать метод, которому передается метод любого типа, но компилятор не может определить типы метода, который я передаю. Компилятор всегда жалуется с сообщением

Ожидается метод с ' ??? TestFunc (???, ???) 'подпись

Вот тестовый пример.

using System;

public class Example
{
    private interface ITest
    {
        int TestFunc(string str, int i);
    }

    private class Test : ITest
    {
        public int TestFunc(string str, int i) { return 0; }
    }

    public static void Main()
    {
        ITest t = new Test();
        DoWork(t.TestFunc);
    }

    public static void DoWork<T1, T2, TResult>(Func<T1, T2, TResult> func)
    {
    }
}

Кто-нибудь может объяснить мне, в чем проблема?

11
задан Martin 8 April 2011 в 09:17
поделиться