Domanda
Ho una classe dichiarata come segue:
Public MustInherit Container(Of T As {New, BaseClass}) Inherits ArrayList(Of T)
Ho delle classi che ereditano questa classe.
Ho un'altra classe che devo passare istanze in questo metodo:
Public Sub LoadCollection(Of T As {BaseClass, New})(ByRef Collection As Container(Of T))
Devo archiviare l'oggetto passato in una variabile globale, ma non posso semplicemente dichiararlo:
Private _Container as Collection(Of BaseClass)
Qual è la sintassi per dichiarare questo oggetto?
Soluzione
Mi dispiace non ho tempo di espandermi su questo adesso, ma penso questo link descrive il problema di fondo e una soluzione.
(Potresti anche trovare questo interessante.)
Altri suggerimenti
Non può essere una variabile globale. Il contenitore è un'idea, non una cosa.
Come hai progettato, quell'idea si trasforma in una cosa reale solo all'interno di LoadCollection (). Devi trasmettere le informazioni al di fuori di quel metodo.
Hmmm. & Quot; Collection " è un nome variabile, non un Tipo. Penso che questo sia quello che vuoi:
Private _Container as Container(Of BaseClass)
Inoltre, ArrayList non è una classe generica; non intendi ereditare List (di T)?