无法转换类型';表达式<;System.Func<;TP,动作>>';到';表达式&l

本文关键字:表达式 gt lt 动作 TP 转换 System Func 类型 | 更新日期: 2023-09-27 18:20:46

我有两个类:-BasePageElement(父级)和Action(BasePageElement的子级)。

我有两种方法:

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

所以我在点击方法中遇到了问题,因为无法转换类型Expression<Func<TP,动作>>到表达式<Func<TP,BasePageElement>>
我该如何解决?

无法转换类型';表达式<;System.Func<;TP,动作>>';到';表达式&l

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

因此,您必须手动转换Expression<Func<TP, Action>>转换为Expression<Func<TP, BasePageElement>>然后用转换后的值作为参数调用WaitForSomething。