【问题标题】:How do I program this correctly如何正确编程
【发布时间】:2012-08-04 01:22:27
【问题描述】:

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

【问题讨论】:

  • 如果附加变量是私有的,即使你转换了,你又如何访问它们?

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 2014-06-07
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多