Эта проблема сбивает меня с ума со времени последних двух часов.Тип аргумента «лямбда-выражение» не может быть присвоен типу параметра «System.Action»
У меня есть 2 версии одного и того же имущества, которое я написал:
public IMvxCommand ButtonClickedCommand
{
get
{
return new MvxCommand(() =>
{
Mvx.Resolve<IMvxWebBrowserTask>().ShowWebPage("http://google.com");
});
}
}
И
public IMvxCommand ButtonClickedCommand
{
get
{
return new MvxCommand((Action) (() =>
{
Mvx.Resolve<IMvxWebBrowserTask>().ShowWebPage("http://google.com");
}));
}
}
Оба метода являются правильными, и в настоящее время работают, когда кнопка нажата, и они делают то, что они должны делать. Но первый показывает мне это:
Второго:
Если нет решения для этого, и это какое-то ошибки, я переведу ее, но в другом проекте, над которым я работаю, также используется библиотека v3, и такой проблемы нет.
Lucas
// Редактировать
Я хотел бы добавить больше деталей к этому вопросу, так что, возможно, это поможет найти причину проблемы.
Существует вообще никакой проблемы с лямбда-выражениями, если я пишу их для методов, которые я сам создаю. Например:
public void fun()
{
fun2(() =>
{
GetType();
});
}
public void fun2(Action action)
{
}
Этот фрагмент кода выше, с помощью лямбда-выражения для требуемого параметра действий, так что ситуация очень похожа на одну из первого фрагмента кода, и пока нет никаких проблем с этим. Проблема в том, что если я передам лямбда-выражение в конструктор объекта MvxCommand, я не буду явно указывать на Action.
Приостановка R # сделала предупреждение/ошибка ушла. Странно, что метод, который я написал, не показывал предупреждения. Я покажу это сообщение как ответ. Я попытаюсь исследовать проблему, и если я столкнусь с корнем причины, я отправлю обратно. Спасибо Стюарту. – Lucas