C# 返回类型错误的Blazor任务
我发现了错误 任务> __生成的\uuu索引。SearchFilmString'的返回类型错误 在我的代码下面,我不知道为什么。有问题的路线是C# 返回类型错误的Blazor任务,c#,task,return-type,blazor,C#,Task,Return Type,Blazor,我发现了错误 任务> __生成的\uuu索引。SearchFilmString'的返回类型错误 在我的代码下面,我不知道为什么。有问题的路线是 <BlazoredTypeahead SearchMethod="SearchFilms" 代码: 我通过将SearchFilms方法更改为下面的方法来修复它,很奇怪 private async Task<IEnumerable<Film>> SearchFilms(string searchText) {
<BlazoredTypeahead SearchMethod="SearchFilms"
代码:
我通过将SearchFilms方法更改为下面的方法来修复它,很奇怪
private async Task<IEnumerable<Film>> SearchFilms(string searchText)
{
return await Task.FromResult(Films.Where(x => x.Title.ToLower().Contains(searchText.ToLower())).ToList());
}
我通过将SearchFilms方法更改为下面的方法来修复它,很奇怪
private async Task<IEnumerable<Film>> SearchFilms(string searchText)
{
return await Task.FromResult(Films.Where(x => x.Title.ToLower().Contains(searchText.ToLower())).ToList());
}
介绍
在BlazoredTypeahead上,SearchMethod是异步的,因为此委托旨在调用后端以获取数据,并且我们无法阻止UI线程等待结果。通常:
private async Task<IEnumerable<Film>> SearchFilms(string searchText)
{
try
{
var result = await BackendService.SearchFilms(searchText);
return result;
}
catch ( ... )
{
UiShowError( ... )
return empty_list;
}
}
但它们还有其他更多的实现方法:您可以进行微优化,避免异步,并将结果转换为任务,请参阅
*1此外,您还可以避免在方法上方写入警告pragma warning disable CS1998,谢谢简介
在BlazoredTypeahead上,SearchMethod是异步的,因为此委托旨在调用后端以获取数据,并且我们无法阻止UI线程等待结果。通常:
private async Task<IEnumerable<Film>> SearchFilms(string searchText)
{
try
{
var result = await BackendService.SearchFilms(searchText);
return result;
}
catch ( ... )
{
UiShowError( ... )
return empty_list;
}
}
但它们还有其他更多的实现方法:您可以进行微优化,避免异步,并将结果转换为任务,请参阅
*1此外,您还可以避免在方法上方写入pragma warning disable CS1998警告,这要感谢您在私有方法中没有使用异步方法。代码应为:
private Task<List<Film>> SearchFilms(string searchText)
{
return Task.FromResult(Films.Where(x => x.Title.ToLower().Contains(searchText.ToLower())).ToList());
}
您没有在私有方法中使用异步方法。代码应为:
private Task<List<Film>> SearchFilms(string searchText)
{
return Task.FromResult(Films.Where(x => x.Title.ToLower().Contains(searchText.ToLower())).ToList());
}
亚历克,它跑了,但你不知道路。我在亚历克身上解释过,它跑起来了,但你们不知道怎么走。我向丹尼解释过,你不应该等待任务;阅读:这看起来和问题中的代码完全一样,我看不到解释部分@Alec:这是用List而不是IEnumerable运行的吗?@Issac,确切地说,决不能进入异步方法。您可以删除elide的async&await关键字,请参阅@agua的anwser。@Henkholtman,OMG:您必须提供一个具有以下签名的方法Taskdani,您决不能等待任务。CompletedTask;阅读:这看起来和问题中的代码完全一样,我看不到解释部分@Alec:这是使用List而不是IEnumerable运行的吗?@Issac,确切地说,决不使用异步方法。您可以删除elide的async&Wait关键字,请参阅@agua的anwser。@HenkHolterman,OMG:您必须提供一个具有以下签名任务的方法