具有不同字段的对象之间的公共接口

时间:2015-11-13 19:38:13

标签: c# casting polymorphism

我试图想出在两个具有不同字段的对象之间创建公共接口的最佳解决方案。

Interface Base {

  void dosomething();
}

Class A : Base {
  string x;
  string y;
  void dosomething();
}

Class B : Base {
  string a;
  string b;
  string c;
  void dosomething();
}

问题是当我创建一个Base对象时,我仍想访问这些字段。我想到的解决方案是使用" as"命令输入强制转换。有更优雅的解决方案吗?

1 个答案:

答案 0 :(得分:-1)

你可以这样做,

或者您可以拥有一个实现Base的中间类,其中所有五个属性x,y,a,b和c都定义为虚拟并返回null(比如Base2)并从Base2派生您的类,并且只覆盖A和a的x和y ,B和c代表B