Ce que je veux faire est quelque chose comme ce qui suit (toutes les classes d'objets ont une interface commune):définition de classe magasin dans le dictionnaire, par exemple plus tard
MyDict.Add("A", MyAObjectClass); // Not an instance
MyDict.Add("B", MyBObjectClass);
MyDict.Add("C", MyCOjbectClass);
String typeIwant = "B"; // Could be passed to a function or something
MyCommonInterface myobject = MyDict[typeIwant]();
Comment pourrais-je programmer quelque chose comme ça?
Le but de ceci est de ne pas avoir à créer des instances de chaque type que je vais stocker dans mon dictionnaire (peut-être un peu d'entre eux) et à la place seulement celui que je vais utiliser.
Si cela satisfait vraiment l'exigence, pourquoi ajouter l'énorme * * complexité (par rapport à cette solution) d'un cadre distinct? – SimonC
@SimonC: qu'est-ce qui vous fait penser que l'ajout d'un framework comme 'Unity' ajoute une complexité" énorme "? Le code va effectivement réduire, et plus encore, que la liste des classes instanciables se développe. – code4life
Vous devez encore configurer le framework avec le mapping de 'name' pour taper d'une manière ou d'une autre ce qui va se développer exactement de la même manière que le dictionnaire, mais alors vous devez apprendre comment le framework est configuré, ce que l'API est , quels bogues peuvent exister, etc, et tout le monde qui maintient votre code. – SimonC