0

我有 2 个不同的小部件,它们共享 10 个相同的成员。但是它们也有 2 个阶段。每个阶段都有其他阶段没有的特定成员。

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,那么我将不得不对其进行强制转换以访问派生类变量。有没有更好的办法?

4

1 回答 1

0

如果所有私有变量在 IWidget 的上下文中具有相同的含义,那么您可以将属性添加到 IWidget 以检索它们。

否则,您可以实现反射来检索值,但除非您正在执行诸如将属性映射到数据库列或用户界面元素值之类的操作,否则这很可能不是正确的方法。

这意味着投射很可能是您的场景的最佳方式。

于 2012-08-04T02:25:29.397 回答