我正在尝试为Discord机器人编写一个小游戏,但命令会激活异步任务,我完全不了解。
我试图在命令激活时这样做,它会永久地更改变量(直到它重新初始化)。
以下是我的脚本的基础知识:
public int foobar = 0;
[Command("Foo")]
public async Task foo()
{
foobar = 1;
await Context.Channel.SendMessageAsync(foobar.ToString()); //this is basically print("")
}
[Command("Bar")]
public async Task bar()
{
await Context.Channel.SendMessageAsync(foobar.ToString()); //again, basically print("")
}
如果我运行命令Foo,我收到1,这意味着它成功地将int foobar转换为等于1.但是,如果我在Foo之后运行命令Bar,它仍然给我foobar = 0,它告诉我命令Foo只改变了int foobar在那个任务期间,而不是永久性的。很明显我错过了一些明显的东西,但我对异步编程有绝对的经验。