FUNC<>和行动<>无法找到

时间:2010-08-11 17:35:41

标签: .net delegates

我有一位代表:

    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 个答案:

答案 0 :(得分:4)

请务必参考System.Core.dllusing System.Linq;

第二个想法。您正在使用Action代替Func

您需要Func<IPtxLogic, ResultType>

答案 1 :(得分:0)

leppie,你原来的想法是正确的:

  1. 我需要将'System.Core'程序集添加到项目中!
  2. 我需要使用Func&lt;&gt; //但这不是问题的核心
  3. 感谢。

    这些类型包含在3.5开箱即用中: http://msdn.microsoft.com/en-us/library/bb534960.aspx

      

    版本信息   .NET Framework   受以下支持:4,3.5