2012-08-04 36 views
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,那麼我將不得不將它強制轉換爲訪問派生類變量。有沒有更好的辦法?

+1

如果額外的變量是私人的,即使你施放它,你將如何訪問這些變量? – Prescott 2012-08-04 01:25:04

回答

0

如果所有私有變量在IWidget的上下文中具有相同的含義,則可以將屬性添加到IWidget以檢索它們。否則,您可以實現反射來檢索值,但除非您正在將屬性映射到數據庫列或用戶界面元素值,否則很可能不是正確的方法。

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