异步调用的函数语法

道尔顿5

我尝试用参数创建一个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)));
    }

当我用viewmodel调用它时:

 public ICommand OnRemoveTagCommand = AsyncCommand<ResultElementRatingDto>.Create(RemoveTag);

 private async Task<ResultElementRatingDto> RemoveTag(ResultElementRatingDto ratingDto)
    {

        return null;
    }

错误是:

无法从“方法组”转换为“功能”

我的代码有什么问题?

斯蒂芬·克莱里

根据Create可用的重载,以及所使用的语言版本,有时仅考虑返回类型时,编译器有时无法将方法组解析为明确的重载。在这种情况下,请使用lambda表达式调用该方法:

public ICommand OnRemoveTagCommand = AsyncCommand<ResultElementRatingDto>.Create(x => RemoveTag(x));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章