错误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# 的新手,我不知道如何解决这个问题......

请帮助我。

谢谢。

错误CS0201,这是什么

尝试替换

(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);