错误CS0201,这是什么
本文关键字:是什么 CS0201 错误 | 更新日期: 2023-09-27 18:32:32
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# 的新手,我不知道如何解决这个问题......
请帮助我。
谢谢。
尝试替换
(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
事件不兼容。
你的 lambda 周围有一组额外的括号。
worker.DoWork += (o, args) => (args.Result = Echo(param1, param2, key, secret));
应该是
worker.DoWork += (o, args) => args.Result = Echo(param1, param2, key, secret);