无法转换类型'Expression <system.func <tp,action>&gt;'到'Expression <system.func <tp,basepageelement>&gt;'

时间:2015-11-06 10:51:31

标签: c# linq expression func

我有两节课: - BasePageElement(parent) 和Action(BasePageElement的子)。

我有两种方法:

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

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

    }

所以我在click方法中遇到了问题,因为无法转换类型Expression&lt; FUNC&LT; TP,作用&gt;&GT;表达&lt; FUNC&LT; TP,BasePageElement&GT;&GT;
我该如何解决?

1 个答案:

答案 0 :(得分:1)

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

因此您必须手动转换  Expression<Func<TP, Action>> Expression<Func<TP, BasePageElement>> id | city_id | address ----------------------------- 7 | 1 | null/Street39 8 | 2 | null/Street40 9 | 3 | null/Street41 10 | 4 | null/Street42 city table id | name --------------- 1 | Mexico 2 | New York 3 | Washington 4 | Los Angeles 然后使用转换后的值作为参数调用WaitForSomething。