ich nach einer Antwort gesucht haben und einige C# -examples gefunden, konnte aber nicht bekommen dies in vb.net läuft:eine neue Instanz eines Typs gegeben als Parameter
Ich dachte an etwas wie folgt aus:
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
ich weiß, kann ich eine neue Instanz mit dem Activator.Create schaffen ... Methoden, aber wie ein Array dieser Art zu schaffen, oder einfach nur eine neue Variable deklarieren? (dim)
Vielen Dank im Voraus!
@ M. A. Hanins Antwort ist großartig, verwende definitiv die generische Version, wenn du kannst. Anstelle von .Invoke (New Object()) denke ich, dass Sie. Invoke (Nothing) verwenden müssen. All das sagte, 99% der Fälle, in denen ich sehe, dass jemand das tut, tun sie es aus dem falschen Grund oder machen etwas wirklich sehr, sehr schwer. Reflektion ist in einer Handvoll Situationen nützlich, aber meistens macht es Ihren Code viel verwirrender. –
Diese Antwort ist genau das, was ich brauchte! Ich versuche immer noch http://StackOverflow.com/Questions/2386690/method-to-override-shared-members-in-child-Classes/2387070 arbeiten, so scheint dies eine Lösung zu sein. – stex
@Stex, froh, dass ich helfen konnte. Was diese andere Frage betrifft, habe ich eine andere Lösung vorgeschlagen, aber jetzt sehe ich, dass sie irrelevant sein könnte. @Chris Haas, danke für Ihren Kommentar. Ich denke, mit diesen 99% hast du Recht - die Arbeit mit Generics und Reflection scheint einfach zu lukrativ, obwohl es sich oft als Overkill/Overcomplexation herausstellt. –