Bonjour,
Je débute en C# et je suis à la recherche d'un moyen d'appeler efficacement mes classes d'objet.
Je souhaite par exemple pouvoir faire : Objet.class.create().
Ici, Objet.class peut prendre plusieurs valeurs différentes selon la classe, et pour chaque class on défini une série de fonction qui remplis les conditions que l'on veut
De sorte que si mes classes sont 'stylos' 'papier' etc... je peut appeler Objet.class.create() sans avoir à connaitre la classe en question, si class vaut 'stylos' il me crée un stylo sinon autre chose
L'idée qui me vient à l'esprit est une implémentation C :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 // On défini la signature de nos fonctions et de la classe dans ObjectClass.h typedef void (*function_create) (positionType pos); typedef struct ObjectClass { function_create create; /// prend en argument un fonction de signature function_create, };
On défini ensuite une classe d'objet dans un fichier à part
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 /// class stylo par exemple : #include "ObjectClass.h" ////crée un élément de la classe stylo void stylo_create (positionType pos){ . . . } ObjectClass Stylo = malloc( sizeof(ObjectClass)); Stylo->create = &stylo_create;
Si maintenant j'ai un 'objet' avec un parametre 'class' de type ObjectClass,
Je peux y affecter Stylo ou une autre classe construite de la même manière,
et je pourrais ensuite appeler object->class->create(pos) dans un autre fichier sans avoir à rechercher de quelle classe il s'agit.
Je suis donc à la recherche d'un moyen pour faire quelque chose de similaire en C#, savez-vous comment cela pourrais ce faire?
D'ailleurs, peut-être qu'il y a existe déjà des structures qui permettent de faire ca ou que ca à un nom en particulier ?
Merci d'avance pour l'aide que vous pourrez m'apporter ^^
Partager