我目前正在为不和谐编写一个小项目,并使用异步功能。但是我在理解如何有效地逃避我的方法方面遇到了一些麻烦。
说我有这种方法:
public async Task DoSomething(Item a, Person b)
{
if(b is NPC)
{
await DoFunction()
}
// Code to Handle Everything else
}
我的问题是,在第一次等待后如何有效地退出该方法?有人告诉我,在异步任务中使用返回值是不好的做法。它像使用有效的Ifs和Elses一样简单,而不是使用单一的ifs吗?这真是令人困惑。
答案 0 :(得分:1)
最好和最简单的方法就是简单地返回。每个方法都必须在某个时候返回。我不知道为什么以及怎么做可能是不好的做法。
答案 1 :(得分:1)
我会尝试:
if (b is NPC)
{
await Task.Run(() =>
{
return DoFunction();
});
}
答案 2 :(得分:0)
返回什么?返回DoSomething()还是返回DoFunction()?由于DoSomething()是“异步任务”,您别无选择-您无法返回任何值。换句话说,这不是一个坏习惯,它甚至不会编译。如果删除“异步”,则DoSomething()将必须返回Task,然后显然将无法调用“等待”。请记住,“异步”会更改方法返回值的语法