【问题标题】:Cannot convert type 'Expression<System.Func<TP,Action>>' to 'Expression<System.Func<TP,BasePageElement>>'无法将类型 'Expression<System.Func<TP,Action>>' 转换为 'Expression<System.Func<TP,BasePageElement>>'
【发布时间】:2015-11-06 10:51:30
【问题描述】:

我有 2 节课: - BasePageElement(父) 和 Action(BasePageElement 的子级)。

我有两种方法:

public void Click(Expression<Func<TP, Action>> action)
    {
       WaitSomething(action);
       some code
    }

    public void WaitSomething(Expression<Func<TP, BasePageElement>> action)
    {

    }

所以我在点击方法中遇到了问题,因为无法将类型 Expression> 转换为 Expression>
我该如何解决?

【问题讨论】:

    标签: c# linq expression func


    【解决方案1】:

    您的问题是您尝试将子类 (Action) 转换为父类 (BasePageElement)。这是不可能的。只有反过来才是可能的。

    因此您必须手动转换 Expression&lt;Func&lt;TP, Action&gt;&gt; 转为 Expression&lt;Func&lt;TP, BasePageElement&gt;&gt; 然后以转换后的值作为参数调用 WaitForSomething。

    【讨论】:

    • 如何手动将 Expression> 转换为 Expression>?
    • 您需要编写一个转换器函数,将 Action 从 Expression 中取出并将其转换为 BasePageelement。
    猜你喜欢
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    相关资源
    最近更新 更多