Экземпляр элемента из родительского класса - PullRequest
0 голосов
/ 14 сентября 2011

У меня есть следующая структура:

-PARENT

- ДЕТИ

- ДЕТИ

- ДЕТИ

- ДЕТИ

Довольно прямо. Теперь мне нужно, чтобы класс PARENT имел такую ​​функцию, как createNewChild (id). Элемент PARENT имеет следующее, что каждый РЕБЕНОК должен переопределить:

Public MustOverride Function getId() As Integer

Теперь можно ли получить список всех доступных потомков родителя во время выполнения, чтобы я мог это сделать? Извините, если это звучит странно, мне трудно объяснить это.

В принципе, я хочу сделать следующее:

Dim nParent as PARENT = PARENT.createNewChild(5)

Есть идеи? Я использую VB.net, поэтому любые ответы .net приемлемы. Спасибо!

1 Ответ

1 голос
/ 14 сентября 2011

Ну, единственное, что я мог придумать, чтобы отследить детей вашего родительского класса, это создать список детей при создании.

Class Parent
    Private Shared childList As New List(Of Child)()

    Public Sub CreateNewChild(id As Integer)
        Dim newChild As New Child(id)
        childList.Add(newChild)
        Return newChild
     End Sub

   Public Overridable Function GetID() As Integer
       Return 0
   End Function

   Public Shared Function GetAllChildren() As List(Of Child)
       Return childList
   End Function
End Class

Class Child Inherits Parent
    Private m_ID As Integer
    Public Property ID() As Integer
    Get
        Return m_ID
    End Get
    Set
        m_ID = Value
     End Set
End Property

Private Sub New(id As Integer)
    Me.ID = id
End Sub
End Class

Извините за код, который я изначально написалон в C # и использовал онлайн-конвертер для преобразования в VB.

...