【发布时间】:2016-10-05 11:53:58
【问题描述】:
我有一段代码:
...
await func();
其中函数“func”定义为:
private Task func()
{
}
这个函数定义给出了一个错误:
func():并非所有代码路径都返回值。
这里需要我提供什么样的价值?
【问题讨论】:
我有一段代码:
...
await func();
其中函数“func”定义为:
private Task func()
{
}
这个函数定义给出了一个错误:
func():并非所有代码路径都返回值。
这里需要我提供什么样的价值?
【问题讨论】:
您的函数中缺少 async 关键字:
private async Task func()
{
}
如果没有它,您将定义一个返回 Task 类型对象的函数,但您没有 return someTask; 行,因此会出现编译错误。所以除非你添加它,否则你将不得不返回一些任务。
否则,当指定async 关键字时,您声明此函数将执行一些可以等待的代码。如果其中没有await 任何Task,您将收到以下警告:"This async method lacks 'await' operators and will run synchronously."。有关警告消息的更多信息,请阅读this question。
【讨论】:
你有一个方法的返回类型,但你没有返回任何东西。
private Task func()
{
return new Task();//the task
}
【讨论】: