He buscado una respuesta y encontré algunos C# -examples, pero no pudieron conseguir este funcionamiento en vb.net:crear una nueva instancia de un tipo dado como parámetro
pensé en algo así como lo siguiente:
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 sé, lo puede crear una nueva instancia con el Activator.Create ... métodos, pero la forma de crear una matriz de este tipo o simplemente declarar una nueva variable? (tenue)
¡Gracias de antemano!
@ M.A. La respuesta de Hanin es genial, definitivamente usa la versión genérica si puedes. En lugar de .Invoke (New Object()) Creo que necesita usar .Invoke (Nothing). Además, dicho todo esto, el 99% de las veces que veo a alguien hacer esto lo hace por la razón equivocada o está haciendo algo realmente difícil. La reflexión es útil en un puñado de situaciones, pero la mayoría de las veces hace que el código sea mucho más confuso. –
¡Esta respuesta es exactamente lo que necesitaba! Todavía estoy tratando de obtener http://stackoverflow.com/questions/2386690/method-to-override-shared-members-in-child-classes/2387070 en funcionamiento, por lo que parece ser una solución. – stex
@Stex, me alegro de poder ayudar. Con respecto a esa otra pregunta, he propuesto otra solución, pero ahora veo que podría ser irrelevante. @Chris Haas, gracias por tu comentario. Creo que tienes razón acerca de ese 99%: trabajar con Generics and Reflection parece demasiado lucrativo, aunque muchas veces resulta ser un overkill/overcomplexation. –