0

我有两节课。A 类和 B 类。它们都继承自抽象类。两个类中都有一个具有完全相同代码的方法,我正在尝试将其移至抽象类

该方法在 A 类中是这样的:

public void updateResult(OutputA output)
{

    var Class c = new Class C();
    var result = c.process();

    output.result = result;
}

类似地,该方法在具有 OutputB 参数的 B 类中。属性结果在 A 类和 B 类中很常见。

类型 OutputA 和 OutputB 都派生自基本类型 Output。

当我将方法移动到抽象类并将参数类型用作输出时,编译器无法识别结果属性。

解决这个问题的更好方法是什么,以便可以将方法移动到抽象类并可供 A 类和 B 类使用。

4

3 回答 3

1

您可以创建一个公开result属性的接口并在OutputAOutputB类中实现它,然后您可以将参数作为接口类型传递。

于 2013-06-17T02:33:40.313 回答
1

确保and类的result属性在类中定义并且是公共的,然后将参数类型设置为(正如您在问题中讨论的那样)。OutputAOutputBOutputupdateResultOutput

于 2013-06-17T01:21:17.393 回答
0

您需要将 Output 参数转换为适当的类型,OutputA 或 OutputB。如果您发布代码,那么我可以看到需要在哪里进行转换。

于 2013-06-17T01:17:12.977 回答