我想有一个方法,其返回类型继承自特定类型并实现特定的接口。
也就是说,以下方法TReturn? GetData();
可以从以下两个类返回对象,这样我就可以将返回的对象作为TBase对象或IExpected对象处理。
class1 : TBase, IExpected
class2 : TBase, IExpected
注意:一个可能的解决方案是让一个不做任何事情的公共类:
Class12Base : TBase, IExpected
class1 : Class12Base
class2 : Class12Base
Class12Base GetData();
..但我不能修改1级或2级。
答案 0 :(得分:0)
你不能,我害怕。您可以记录它并在实现中小心,只需选择相关类型的一个作为返回类型,但这就是:(
(我假设您不希望在返回类型中使该方法具有通用性并约束该类型参数...这会将负担放在调用者上以指定类型。 ..)