0
我使用List(Of Interface)收集了不同的派生類實例。 自然,我只能使用迭代訪問Interfaced方法。如何使用迭代從List(派生類)訪問基類?
Public Class Base
Public Sub Work_inBase()
End Sub
End Class
'--------------------------
Public Interface MyIFC
Sub Work()
End Interface
'--------------------------
Public Class Child1
Inherits Base
Implements MyIFC
Public Sub Work() Implements MyIFC.Work
End Sub
End Class
'--------------------------
Public Class Child2
Inherits Base
Implements MyIFC
Public Sub Work() Implements MyIFC.Work
End Sub
End Class
'--------------------------
Public Sub MainProgram()
Dim C1 As New Child1()
Dim C2 As New Child2()
Dim MyList As New List(Of MyIFC)
MyList.Add(C1)
MyList.Add(C2)
MyList(0).Work() >>> OK because it was interfaced
MyList(0).Work_inBase() >>> does not work, cannot access to base
End Sub
是否有任何其他方式來訪問基類方法或成員(這將是非常大的)?也許需要不同的課程設計?
謝謝(VB是首選,但我同樣可以閱讀C#代碼太)
我發現在鑄造之前測試類型是很有用的......例如,如果TypeOf(MyList(0))是基礎 –