CS0119在编译C#时,任务参数处出错



我一直在开发Discord Bot,但我遇到了一个非常严重的错误。

我是个初学者。如果这是一个愚蠢的错误,我很抱歉,我可能一个多月前还不知道C#的基础知识。

private async Task Filter(SocketMessage arg)
{
}
public async Task StartInterpretation()
{
await Filter(SocketMessage arg);
}

这是一个小例子,使我得到的错误。await Filter(SocketMessage arg)导致以下错误:

错误CS0119:"SocketMessage"是一种类型,在给定的上下文中无效

(正如我所看到的,错误是有参数的。(

您需要初始化arg,然后传递到Filter函数。类似于:

public async Task StartInterpretation()
{
var arg= new SocketMessage();
await Filter(arg);
}

CS0119编译错误是因为在调用方法时放入了类型参数。这是不允许的,只有在声明一个方法时才能指定它应该期望的类型。

但是,您有另一个问题,即您没有实例化arg。下面是您更新的代码,以便进行编译。

// this is correct, SocketMessage is the type parameter that Filter expects
private async Task Filter(SocketMessage arg)
{
}
public async Task StartInterpretation()
{
var arg = new SocketMessage();
// do not specify the type parameter, just pass the variable
await Filter(arg);
}

最新更新