2013-06-18 2 views
0

Эта проблема сбивает меня с ума со времени последних двух часов.Тип аргумента «лямбда-выражение» не может быть присвоен типу параметра «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.

ответ

0

Я сомневаюсь, что это не имеет ничего общего с mvvmcross или mvvm

Быстрый поиск этого сообщения об ошибке показывает, что это, скорее всего, снизится до оснастки - особенно г # - например, см хиты как :

Если вы работаете любые расширения, например, г # и удалить или отключить их, то это может удалить предупреждение.


Если отключение их помогает, я бы порекомендовал обратиться за поддержкой для продюсеров (-ов).

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

+0

Приостановка R # сделала предупреждение/ошибка ушла. Странно, что метод, который я написал, не показывал предупреждения. Я покажу это сообщение как ответ. Я попытаюсь исследовать проблему, и если я столкнусь с корнем причины, я отправлю обратно. Спасибо Стюарту. – Lucas

Смежные вопросы