我该如何正确编程

时间:2012-08-04 01:22:28

标签: .net vb.net .net-4.0 private-members

我有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,那么我将不得不强制它来访问派生类变量。还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

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

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

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