1

我想要一个方法,其返回类型继承自特定类型并实现特定接口。

也就是说,下面的方法TReturn? GetData();可以从下面两个类中返回对象,这样我就可以将返回的对象作为 TBase 对象或 IExpected 对象来处理。

class1 : TBase, IExpected
class2 : TBase, IExpected

注意:一个可能的解决方案是有一个什么都不做的通用类:

Class12Base : TBase, IExpected
class1 : Class12Base 
class2 : Class12Base 

Class12Base  GetData();

..但我不能修改第 1 类和第 2 类。

4

1 回答 1

0

你不能,我害怕。您可以记录它并在实现中小心,只需选择一种相关类型作为返回类型,但仅此而已:(

(我假设您不想在其返回类型中使该方法成为通用方法并限制该类型参数......这会给调用者带来指定类型的负担......)

于 2013-07-18T15:20:00.897 回答