使用抽象类重用代码:障碍

时间:2013-06-17 01:13:17

标签: c#

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

方法在A类中如下:

public void updateResult(OutputA output)
{

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

    output.result = result;
}

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

OutputA和OutputB两种类型都来自基类型Output。

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

解决此问题的更好方法是将方法移动到抽象类,并且可以由A类和B类使用。

3 个答案:

答案 0 :(得分:1)

确保resultOutputA类的OutputB属性在Output类中定义并且是公共的,然后设置参数类型{{1} } updateResult(正如您在问题中所讨论的那样)。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您需要将Output参数强制转换为适当的类型Input或Output。如果您发布代码,那么我可以看到演员阵容需要发生的位置。