我想实现一个命令,它将获取用户的名字并执行以下操作:
但我得到以下错误:
命名空间不能直接包含字段或方法等成员
这是我的代码:
public List<string> names;
public class Test : ModuleBase<SocketCommandContext>
{
[Command("myname")]
private async Task test()
{
string name = Context.User.Username;
if (!names.Contains(name))
{
await Context.Channel.SendMessageAsync("Your name is **" + name + "**!");
names.Add(name);
}
else
{
await Context.Channel.SendMessageAsync("I've already told you your name!");
}
}
}
由于您的错误消息(应该从评论移到问题中)已经明确了
命名空间不能直接包含字段或方法等成员
你在类public List<string> names;
之外定义你的Test
,这导致它在命名空间内,不允许它。
要解决您的问题,请移动该行
public List<string> names;
进入班级Test
。