Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何正确编程_.net_Vb.net_.net 4.0_Private Members - Fatal编程技术网

.net 如何正确编程

.net 如何正确编程,.net,vb.net,.net-4.0,private-members,.net,Vb.net,.net 4.0,Private Members,我有两个不同的小部件,它们共享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

我有两个不同的小部件,它们共享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,那么我将不得不强制转换它以访问派生类变量。有更好的方法吗?

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

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


这意味着强制转换很可能是您的场景的最佳方式。

如果附加变量是私有的,那么即使您强制转换,您将如何访问这些变量?