我一直在开发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);
}