我有一位代表:
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
答案 0 :(得分:4)
请务必参考 System.Core.dll
和using System.Linq;
第二个想法。您正在使用Action
代替Func
。
您需要Func<IPtxLogic, ResultType>
。
答案 1 :(得分:0)
leppie,你原来的想法是正确的:
感谢。
这些类型包含在3.5开箱即用中: http://msdn.microsoft.com/en-us/library/bb534960.aspx
版本信息 .NET Framework 受以下支持:4,3.5