具有不同字段的对象之间的通用接口

本文关键字:之间 接口 对象 字段 | 更新日期: 2023-09-27 18:21:55

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

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"命令来键入cast。有没有更优雅的解决方案?

具有不同字段的对象之间的通用接口

你可以做到,

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