我有2个不同的小部件,共享10个相同的成员。但他们也有两个阶段。 每个阶段都有特定成员,而另一个阶段没有。
public class widget
private _id as integer
private _engravedId as string
private _stage as WidgetStage
private _wig as IWidget
end class
public interface IWidget
Calculate()
end interface
public class Twidget
implemets IWidget
private t as integer
private b as double
private d as double
end class
public class Rwidget
implemenents IWidget
private y as integer
private x as double
private b as double
end class
如果我在我的类中声明一个Iwidget,那么我将不得不强制它来访问派生类变量。还有更好的方法吗?
答案 0 :(得分:0)
如果所有私有变量在IWidget的上下文中具有相同的含义,那么您可以向IWidget添加属性以检索它们。
否则,您可以实现反射来检索值,但除非您正在执行将属性映射到数据库列或用户界面元素值之类的操作,否则很可能不是正确的方法。
这意味着投射很可能是您的方案的最佳方式。