我得到一个例外.
无法隐式转换
'System.Collections.Generic.List<IntegraPay.Domain.SObjects.Industry>'为'System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<IntegraPay.Domain.SObjects.Industry>>'
以下是我的财产和方法.
private List<WebFormFieldContent> WebFormFields { get; set; } =
new List<WebFormFieldContent>();
Task<IEnumerable<WebFormFieldContent>> IRegistrationRepository.GetWebFormFields()
{
return WebFormFields;
}
Run Code Online (Sandbox Code Playgroud)
das*_*ght 12
当您async在方法声明中缺少此错误时,通常会发生此错误.
当您放入async签名时,C#编译器会添加"magic"来执行从对象到Task<T>返回该对象的转换.
但是,在您的情况下async是不必要的,因为您返回的任务的结果是您已经拥有的:
return Task.FromResult<IEnumerable<WebFormFieldContent>>(
WebFormFields
);
Run Code Online (Sandbox Code Playgroud)
您的方法返回类型是
Task<IEnumerable<WebFormFieldContent>>
Run Code Online (Sandbox Code Playgroud)
但实现返回一个
List<WebFormFieldContent>.
Run Code Online (Sandbox Code Playgroud)
你可以将其更改为
Task<List<WebFormFieldContent>> IRegistrationRepository.GetWebFormFields()
{
return Task.FromResult(WebFormFields);
}
Run Code Online (Sandbox Code Playgroud)
或者将私有变量更改为
IEnumerable<WebFormFieldContent> WebFormFields { get; set; } =
new List<WebFormFieldContent>();
Run Code Online (Sandbox Code Playgroud)
类型。
或者您可以添加 async 关键字使其成为同步调用
async Task<IEnumerable<WebFormFieldContent>> IRegistrationRepository.GetWebFormFields()
{
return WebFormFields;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10880 次 |
| 最近记录: |