Странная ошибка компилятора C # - PullRequest
1 голос
/ 14 ноября 2009

Может кто-нибудь помочь мне разобраться с этой ошибкой компилятора?

У меня есть такой класс

public class Test {
    public delegate void TestAction<T>(T arg);
    public delegate void TestActionCaller<T1, T2>(T1 arg, TestAction<T2> action);

    public static void Call<T1,T2>(TestActionCaller<T1,T2> actioncaller) {
        actioncaller(default(T1), arg => { });
    }
}

Тогда у меня есть следующий код

public class TestCaller {
    static TestCaller() {
        Test.Call<int, int>((arg,action)=>action(arg));
    }
}

Это отлично работает.

Но если я перенесу TestCaller в другую сборку (точно такой же код, как и выше), я получу ошибку компилятора "Делегат" TestAction "не принимает аргументы" 1 ".

1 Ответ

2 голосов
/ 14 ноября 2009

Я считаю, что компилятор не может определить параметры, и вам нужно явно указать их тип:

Test.Call((int arg, TestAction<int> action) => action(arg));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...