【发布时间】:2019-03-01 12:21:44
【问题描述】:
为什么下面的代码不能编译?我只是想得到一个简单的列表来返回。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var list = MainAsync(args).Wait();
//Compile error: Cannot assign void to an implicitly-typed variable
}
static async Task MainAsync(string[] args)
{
Bootstrapper bs = new Bootstrapper();
var list = await bs.GetList();
}
}
public class Bootstrapper
{
public async Task<List<string>> GetList()
{
List<string> toReturn = new List<string>();
toReturn.Add("hello");
toReturn.Add("world");
return await toReturn;
//Compile error: 'List<string>' does not contain a definition for 'GetAwaiter' and no extension method 'GetAwaiter' accepting a first argument of type 'List<string>'
}
}
}
【问题讨论】:
-
你得到什么编译错误?
-
为什么
await在return语句中? -
更新了带有编译错误的代码。异步/等待的新手,所以我只是尝试一些简单的东西来尝试理解。
-
MainAsync不返回值。你为什么要在这里将结果存储到list?
标签: c# async-await