异步调用的函数语法

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));