小编Han*_*mpf的帖子

C#功能参数实现抽象类和多个接口

考虑C#中的以下结构:

interface I1
interface I2

abstract class A
- class A1 : A
  - class A11 : A1, I1
  - class A12 : A1, I2
- class A2 : A
  - class A21 : A2, I1
  - class A22 : A2, I2
Run Code Online (Sandbox Code Playgroud)

现在我有一个B类,它在构造函数中接受一个参数.该参数必须是以某种方式从A派生并实现接口I2的类,即它可以是类型A12或A22,但不是A11或A21.我该如何定义该参数?此外,我想稍后将参数存储为B中的属性(以供以后使用).

我无法将A重新定义为接口,因为它提供了许多虚拟方法.我也不能跳过树状继承方案,因为A1和A2提供了许多在别处使用的特定方法(不在B中).所以,我需要在B中处理的是来自A和I2的东西.

c# interface multiple-inheritance parameter-passing abstract

1
推荐指数
2
解决办法
970
查看次数