错误:在c#异步代码中,return关键字后面不能跟对象表达式
我在C#中有以下异步代码:错误:在c#异步代码中,return关键字后面不能跟对象表达式,c#,asynchronous,async-await,task,task-parallel-library,C#,Asynchronous,Async Await,Task,Task Parallel Library,我在C#中有以下异步代码: public异步任务GetPhotos(列出photoid) { 列表照片=新列表(); if(photoIds!=null) { foreach(photoId中的int photoId) { Photo Photo=wait ImageRepository.GetAsync(photoId); 如果(照片!=null) 照片。添加(照片); } } 归还照片; } 在return语句中,我收到以下错误消息: 由于GetPhotos(List photoid)是一
public异步任务GetPhotos(列出photoid)
{
列表照片=新列表();
if(photoIds!=null)
{
foreach(photoId中的int photoId)
{
Photo Photo=wait ImageRepository.GetAsync(photoId);
如果(照片!=null)
照片。添加(照片);
}
}
归还照片;
}
在return语句中,我收到以下错误消息:
由于GetPhotos(List photoid)是一个返回“Task”的异步方法,因此return关键字后面不能跟有对象表达式。您是否打算返回“任务”
如何解决此错误???异步方法返回一个
任务
,显示任务是否完成,并允许调用方使用.Result
或异步
检索返回值
如果没有返回值,异步方法将返回一个任务
。当它完成时,它什么也不返回
您的方法被定义为返回一个任务
,这意味着它在完成时不返回任何内容,但在方法末尾,您返回一个列表
。因此,正确的返回类型应该是任务
你可能希望阅读
另外,示例代码中有一个输入错误:
List
->List
将方法Task
的返回类型改为Task
。调用GetPhotos
时,请使用
var photos = await GetPhotos
照片的类型为
列表
。(关键字wait
实质上是从任务
中提取列表
对象)像这样更改返回类型任务
var photos = await GetPhotos
public async Task<List<photos>> GetList()
{
List<Photos> photos = new List<Photos>();
if (photoIds != null)
{
foreach (int photoId in photoIds)
{
Photo photo = await ImageRepository.GetAsync(photoId);
if (photo != null)
photos.Add(photo);
}
}
return photos;
}
var list = await GetList()