这个问题让我在过去几个小时内感到疯狂。
我写了两个与我写的相同属性的版本:
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库,并且没有这样的问题。
卢卡斯
//修改
我想在这个问题上添加更多细节,这样可能有助于找到问题的原因。
如果我为自己创建的方法编写lambda表达式,那么lambda表达式通常没有问题。例如:
public void fun()
{
fun2(() =>
{
GetType();
});
}
public void fun2(Action action)
{
}
上面的代码片段使用lambda表达式来表示所需的Action参数,因此情况与第一个代码段中的情况非常相似,但是没有问题。问题是,如果我将lambda表达式传递给MvxCommand对象的构造函数,我将不会显式地转换为Action。
答案 0 :(得分:0)
我怀疑这与mvvmcross
或mvvm
快速搜索此错误消息表明这更可能归结为工具 - 尤其是r# - 例如,请查看点击次数:
如果您正在运行任何扩展程序(如r#)并删除或禁用它们,则可能会删除警告。
如果禁用它们有帮助,那么我建议请求扩展供应商寻求支持。
如果禁用它们没有用,那么我建议调查两个项目之间存在/不存在问题的区别 - 这有望产生答案。