我有两节课。 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类使用。
答案 0 :(得分:1)
确保result
和OutputA
类的OutputB
属性在Output
类中定义并且是公共的,然后设置参数类型{{1} } updateResult
(正如您在问题中所讨论的那样)。
答案 1 :(得分:1)
您可以创建一个公开result
属性的接口,并在OutputA
和OutputB
类中实现它,然后您可以将参数作为接口类型传递。
答案 2 :(得分:0)
您需要将Output参数强制转换为适当的类型Input或Output。如果您发布代码,那么我可以看到演员阵容需要发生的位置。