Ho cercato una risposta e trovato alcuni C# -examples, ma non poteva ottenere questo correre in vb.net:Creare una nuova istanza di un tipo passato come parametro
ho pensato a qualcosa di simile al seguente:
public function f(ByVal t as System.Type)
dim obj as t
dim a(2) as t
obj = new t
obj.someProperty = 1
a(0) = obj
obj = new t
obj.someProperty = 2
a(1) = obj
return a
End Function
lo so, posso creare una nuova istanza con l'Activator.Create ... metodi, ma come creare una matrice di questo tipo o semplicemente dichiarare una nuova variabile? (dim)
Grazie in anticipo!
@ M.A. La risposta di Hanin è ottima, usa sicuramente la versione generica se puoi. Invece di .Invoke (New Object()) Penso che sia necessario utilizzare .Invoke (Nothing). Inoltre, tutto ciò ha detto, il 99% delle volte che vedo qualcuno fare questo lo stanno facendo per il motivo sbagliato o stanno facendo qualcosa in modo davvero molto difficile. La riflessione è utile in una manciata di situazioni, ma il più delle volte rende il tuo codice molto più confuso. –
Questa risposta è esattamente ciò di cui avevo bisogno! Sto ancora cercando di ottenere http://stackoverflow.com/questions/2386690/method-to-override-shared-members-in-child-classes/2387070 funzionante, quindi questa sembra essere una soluzione. – stex
@Stex, felice di poterti aiutare. Riguardo a quell'altra domanda, ho proposto un'altra soluzione, ma ora vedo che potrebbe essere irrilevante. @Chris Haas, grazie per il tuo commento. Penso che tu abbia ragione su quei 99% - lavorare con Generics e Reflection sembra troppo lucrativo, anche se molte volte risulta essere un overkill/overcomplexation. –