Fun c синтаксис для асин c вызова - PullRequest
2 голосов
/ 20 февраля 2020

Я пытаюсь создать 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;
    }

Ошибка:

не может конвертировать из 'группы методов' в 'Fun c'

Что не так в моем коде?

1 Ответ

2 голосов
/ 20 февраля 2020

В зависимости от доступных перегрузок Create и в зависимости от используемой языковой версии компилятор иногда не может преобразовать группу методов в однозначную перегрузку, когда рассматриваются только возвращаемые типы. В этом случае вызовите метод с лямбда-выражением:

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