【问题标题】:How to guarantee two conditions in a return type如何保证返回类型中有两个条件
【发布时间】:2013-07-18 15:16:56
【问题描述】:

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

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

class1 : TBase, IExpected
class2 : TBase, IExpected

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

Class12Base : TBase, IExpected
class1 : Class12Base 
class2 : Class12Base 

Class12Base  GetData();

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

【问题讨论】:

    标签: c# inheritance multiple-inheritance


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 2020-05-09
      相关资源
      最近更新 更多