public static void EchoAsync(
string param1, string param2, string key, string secret, Service.OnSuccess success, Service.OnFailed failed)
{
BackgroundWorker worker = Service.CreateWorkerAsync(success, failed);
worker.DoWork += (o, args) => (args.Result = Echo(param1, param2, key, secret)); //(Line4)
worker.RunWorkerAsync();
}
当我构建它时,“错误CS0201:只有赋值,调用,递增,递减和新对象表达式可用作语句”发生在第4行。
我是C#的新手,我不知道如何解决这个问题......
请帮帮我。
感谢。
答案 0 :(得分:2)
尝试替换
(o, args) => (args.Result = Echo(param1, param2, key, secret));
与
(o, args) => {args.Result = Echo(param1, param2, key, secret); };
使它成为语句lambda而不是表达式lambda。
在C#中,赋值运算符是一个有效的表达式,可以返回,表达式为lambda。但是,你的lambda的返回类型不会是void
...使它与DoWork
事件不兼容。
答案 1 :(得分:0)
你的lambda周围有一组额外的括号。
worker.DoWork += (o, args) => (args.Result = Echo(param1, param2, key, secret));
应该是
worker.DoWork += (o, args) => args.Result = Echo(param1, param2, key, secret);