Gibt es eine Möglichkeit, einen Typ in der Laufzeit anzugeben, indem Sie eine Zeichenfolge mit dem Namen des Typs umwandeln? Ich hüpfe meinen unten stehenden Kompilierungscode und kann erklären, was ich versuche zu tun. Lassen Sie es mich wissen und versuchen Sie es besser zu erklären.Casting-String zum Typ
var valueFromDropDownMenu = "MyClass";
List<Type.GetType(valueFromDropDownMenu)> dynamicList =
new List<Type.GetType(valueFromDropDownMenu) >();
// Code to iterate through objects and populate dynamicList
// with all objects of correct type
Was ich versuche zu tun ist, den Benutzer wählen zu lassen, welche Art von Objekt ich verarbeiten werde.
Ich verwende Unity3D, das ist ein Game-Dev-Framework und es verwendet eine statische Methode, um Ressourcen aus Dateien zu laden. Diese Ressourcen müssen umgewandelt werden.
Ich versuche, ein Entwickler-Tool zu machen, mit dem der Entwickler einen bestimmten Typ von Ressourcen auswählen kann, die geladen werden sollen. Also muss ich etwas wie
tunvar files = LoadAll("Path, ofType(UserSelectedType));
Ist es möglich?
Werfen Sie einen Blick [hier] (http://stackoverflow.com/questions/11107536/convert-string-to-type-in-c-sharp), sollte dies Ihre Frage beantworten. –
Ich weiß, dass dies Ihre Frage nicht beantwortet, aber wäre es möglich für Sie eine Schnittstelle zu erstellen, die alle diese Typen implementieren könnten, d. H. Möchten Sie die gleiche Operation ausführen, egal welchen Typ sie tatsächlich bekommt? –
'List' wird nicht funktionieren - aber Sie brauchen das wahrscheinlich nicht. Ich nehme an, Sie haben bereits eine Liste von Elementen, aus denen Sie suchen können. Wenn ja, warum nicht den gleichen Typ verwenden - da alle gefundenen Objekte von diesem Typ sind oder überhaupt ein Untertyp? –