错误:在c#异步代码中,return关键字后面不能跟对象表达式

错误:在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)是一

我在C#中有以下异步代码:

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()