0

自从过去几个小时以来,这个问题让我发疯了。

我写的相同属性有 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 库,并且没有这样的问题。

卢卡斯

//编辑

我想为这个问题添加更多细节,以便它可能有助于找到问题的原因。

如果我为自己创建的方法编写 lambda 表达式,一般来说没有问题。例如:

public void fun()
{
    fun2(() =>
             {
                 GetType();
             });
}

public void fun2(Action action)
{
}

上面的这个片段使用 lambda 表达式作为所需的 Action 参数,因此情况与第一个片段中的情况非常相似,但没有问题。问题是,如果我将 lambda 表达式传递给 MvxCommand 对象的构造函数,我不会显式地转换为 Action。

4

1 回答 1

0

我怀疑这与mvvmcrossmvvm

快速搜索此错误消息表明这更有可能归结为工具 - 尤其是 r# - 例如,请参阅以下点击:

如果您正在运行像 r# 这样的任何扩展并且您删除或禁用它们,那么这可能会删除警告。


如果禁用它们有帮助,那么我建议向扩展供应商寻求支持。

如果禁用它们没有帮助,那么我建议调查两个项目之间存在/不发生问题的差异 - 这有望产生答案。

于 2013-06-19T06:22:13.700 回答