在程序集中,MyLibrary.Common
我定义了一个通用委托类型:
namespace MyLibrary.Common {
public delegate TResult Instruction<in TArgument, out TResult>(
CancellationToken cancellationToken,
Action reportProgress,
TArgument argument);
}
然后我通过链接到相应的 DLL 在另一个 VS2010 项目中引用这个程序集。
当我想使用以下方法创建这种类型的实例时,我收到以下错误:
Instruction<string, bool> instruction =
(cancellationToken, reportProgress, argument) => SomeOperation(argument);
private static bool SomeOperation(string arg) {
return false;
}
我上instruction = ...
线的错误是
无法将源类型“lambda 表达式”转换为目标类型“MyLibrary.Common.Instruction”
当我尝试将应用程序编写SomeOperation(argument)
为 aprivate static bool SomeOperationWrapped(string argument)
并将该SomeOperationWrapped
标识符分配给我的instruction
变量时,我得到的错误是
期望一个带有 '??? 的方法 SomeOperationWrapped()' 签名
奇怪的是,在另一个 VS2010 项目中,将 lambda 表达式分配给我的Instruction<TArgument, TResult
变量时没有遇到任何问题。