Func <> и Action <> не могут быть найдены - PullRequest
0 голосов
/ 11 августа 2010

У меня есть делегат:

    delegate ResultType Caller<ResultType>(IPtxLogic logic);

Вот функция:

private ResultType ExecuteLogicMethod2<ResultType>(string sessionId,
    Caller<ResultType> action) 
    where ResultType : IResult, new()
    {...}

Я хочу заменить сигнатуру функции на что-то вроде этого:

private ResultType ExecuteLogicMethod2<ResultType>(string sessionId,
    Action<IPtxLogic, ResultType> action)
    where ResultType : IResult, new()
    {...}

Компилятор говорит мне:

Использование универсального типа 'System.Action' требует аргументов типа '1'

Почему? Как я могу получить доступ к «стандартному» классу .NET?

Спасибо. Любые мысли приветствуются.

P.S. Я создал свой собственный делегат для решения проблемы, но ... я не хочу создавать пользовательский делегат для каждого из моих "пользовательских действий" ...

delegate ResultType Action<ParameterType, ResultType>(ParameterType param);

P.P.S. Я использую .NET 3.5

Ответы [ 2 ]

4 голосов
/ 11 августа 2010

Убедитесь, что вы ссылаетесь на System.Core.dll и using System.Linq;

При втором размышлении.Вы используете Action вместо Func.

Вам нужно Func<IPtxLogic, ResultType>.

0 голосов
/ 11 августа 2010

leppie, ваша первоначальная мысль была правильной:

  1. Мне нужно добавить сборку 'System.Core' в проект!
  2. Мне нужно использовать Func <> // но этоне является суть проблемы

Спасибо.

Эти типы включены в 3.5 из коробки: http://msdn.microsoft.com/en-us/library/bb534960.aspx

Информация о версии .NET Framework Поддерживается в версиях: 4, 3.5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...