异步调用的函数语法
Func syntax for async call
我尝试创建一个带参数的 AsyncCommand。
我用了这个方法,但是没用。
public static AsyncCommand<T> Create(Func<System.Threading.Tasks.Task<T>> func)
{
return new AsyncCommand<T>(new Command<T>(async (x) => await func(x)));
}
当我用我的视图模型调用它时:
public ICommand OnRemoveTagCommand = AsyncCommand<ResultElementRatingDto>.Create(RemoveTag);
private async Task<ResultElementRatingDto> RemoveTag(ResultElementRatingDto ratingDto)
{
return null;
}
错误是:
cannot convert from 'method group' to 'Func'
我的代码有什么问题?
根据可用的 Create
重载和 language version you're using,编译器在仅考虑 return 类型时有时无法将方法组解析为明确的重载.在这种情况下,使用 lambda 表达式调用该方法:
public ICommand OnRemoveTagCommand = AsyncCommand<ResultElementRatingDto>.Create(x => RemoveTag(x));
我尝试创建一个带参数的 AsyncCommand。
我用了这个方法,但是没用。
public static AsyncCommand<T> Create(Func<System.Threading.Tasks.Task<T>> func)
{
return new AsyncCommand<T>(new Command<T>(async (x) => await func(x)));
}
当我用我的视图模型调用它时:
public ICommand OnRemoveTagCommand = AsyncCommand<ResultElementRatingDto>.Create(RemoveTag);
private async Task<ResultElementRatingDto> RemoveTag(ResultElementRatingDto ratingDto)
{
return null;
}
错误是:
cannot convert from 'method group' to 'Func'
我的代码有什么问题?
根据可用的 Create
重载和 language version you're using,编译器在仅考虑 return 类型时有时无法将方法组解析为明确的重载.在这种情况下,使用 lambda 表达式调用该方法:
public ICommand OnRemoveTagCommand = AsyncCommand<ResultElementRatingDto>.Create(x => RemoveTag(x));