无法将类型’System.Collections.Generic.List ‘隐式转换为’System.Threading.Tasks.Task >
我得到一个例外。
无法将类型
'System.Collections.Generic.List'
隐式转换为'System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable>'
以下是我的财产和方法。
private List WebFormFields { get; set; } = new List(); Task<IEnumerable> IRegistrationRepository.GetWebFormFields() { return WebFormFields; }
当您在方法声明中缺少async
时,通常会发生此错误。
当您在签名中放入async
时,C#编译器会添加“魔法”来执行从对象到返回该对象的Task
的转换。
但是,在您的情况下, async
是不必要的,因为您返回的任务的结果是您已经拥有的:
return Task.FromResult>( WebFormFields );
你的方法返回类型是
Task>
但实现返回一个
List.
您可以将其更改为
Task> IRegistrationRepository.GetWebFormFields() { return Task.FromResult(WebFormFields); }
或者将私有变量更改为
IEnumerable WebFormFields { get; set; } = new List ();
类型。
或者,您可以添加异步关键字以使其成为同步调用
async Task> IRegistrationRepository.GetWebFormFields() { return WebFormFields; }