IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Implémentation structure en C#


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Implémentation structure en C#
    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 ^^

  2. #2
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Il s'agit tout simplement de mettre en place le patron de conception Fabrique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public interface IFactory
    {
       object Create();
    }
     
    public class StyloFactory : IFactory
    {
       public object Create()
       {
          return new Stylo();
       }
    }
    et pour l'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    IFabrique fabrique = new StyloFactory();
    ...
    object monObjet = fabrique.Create();
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Génial,
    C'est exactement ce que je cherchais

    Merci beaucoup Francois ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quad-edge structure implémentation
    Par FlashLogic dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 19/04/2014, 19h29
  2. Implémentation en java de structures de données
    Par wafiwafi dans le forum Général Java
    Réponses: 15
    Dernier message: 05/04/2011, 15h42
  3. [Forth] Implémentation des structures dynamiques
    Par <Zer0> dans le forum Autres langages
    Réponses: 14
    Dernier message: 28/01/2009, 23h01
  4. Réponses: 2
    Dernier message: 08/11/2007, 11h13
  5. Réponses: 7
    Dernier message: 08/12/2005, 09h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo