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 :

Simuler un header en C#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 88
    Par défaut Simuler un header en C#
    Bonjour à tous,

    Je suis désolé de poser une question si étrange. Voila mon problème :

    Dans le cadre d'une appli, je voudrais pouvoir spécifier des prototypes de classe, les utiliser, mais les implanter dans une dll externe. En fait, l'idée c'est que je laisserai l'écriture de cette dll à quelqu'un d'autre, et moi j'écris un code qui utilisera ce qui a été fait dedans.

    En C++, j'aurai écrit un .h, je l'aurai filé au développeur de la dll, je l'aurai utilisé dans mes sources afin de connaître le proto des classes, et j'aurai tout remis ensemble à la compile.

    Mais en C#, comment faire ?

    Merci beaucoup

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    En général, on définit une interface, bien que ça n'ait pas tout à fait le même sens...

    Par exemple, tu as une classe UneClasse, développée par quelqu'un d'autre. Tu peux créer une interface qui la classe doit implémenter, en indiquant dedans la signature des méthodes et propriétés que tu dois utiliser:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    // Interface
    interface IUneClasse
    {
        void FaireQuelqueChose();
        string Nom { get; set; }
    }
     
     
    // Implémentation (dans la DLL)
    public class UneClasse : IUneClasse
    {
        void FaireQuelqueChose()
        {
            Console.WriteLine("Hello world");
        }
     
        private string nom;
        public string Nom
        {
            get { return nom; }
            set { nom = value; }
        }
    }
     
    // Utilisation (dans ton programme)
    IUneClasse x = new UneClasse();
    x.Nom = "toto";
    x.FaireQuelqueChose();
    Dans ton code

    Pour améliorer le découplage entre l'interface et l'implémentation, il vaut mieux déclarer l'interface dans un assembly référencé par ton programme et par la DLL

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 88
    Par défaut
    Merci beaucoup d'avoir répondu si vite.

    J'ai pensé à faire une interface, mais le problème c'est qu'il faut que je connaisse dans le code qui utilise les classes externes le nom de la classe qui implantera l'interface, donc je retombe en fait un peu sur le même problème ...

    Cependant, si je ne trouve pas d'autres méthodes, je mettrais en commentaire le nom que doivent avoir les classes qui implantent les interfaces, mais je trouve ca cracra comparé à un beau header.

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par ArianeV Voir le message
    il faut que je connaisse dans le code qui utilise les classes externes le nom de la classe qui implantera l'interface
    Question bête : pourquoi ?

  5. #5
    Membre Expert Avatar de LaChips
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 109
    Par défaut
    Bonjour,

    Et pourquoi ne pas utiliser des classes et des méthodes partielles ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 88
    Par défaut
    Alors, à la question pourquoi :

    En fait j'ai besoin de faire des calculs de probas assez costauds dans mon appli, et je voudrai laisser le détail de ce calcul à quelqu'un d'autre. Il faudrait surtout que ce soit fait dans une autre dll, pour qu'il suffise de changer une dll pour mettre à jour l'appli et ses méthodes de calcul. Je voudrai donc définir le proto d'une ou deux classes qu'on implementera à coté. En C++, je passerai donc par un header ...

    Pour les méthodes partielles :
    On peut écrire une declaration de classe dans un fichier et en écrire le corps dans un autre ? Je croyais que ca permettait juste de diviser le code d'une classe dans plusieurs fichiers, mais sans séparer déclaration et implémentation ...

    Merci encore

Discussions similaires

  1. Probleme Voyageur de Commerce - Recuit Simulé
    Par dinver dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/06/2009, 22h26
  2. Simulation de "mailto" par header()
    Par papounet007 dans le forum Langage
    Réponses: 3
    Dernier message: 04/02/2009, 21h17
  3. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31
  4. Simuler un coup de molette sur un memo...
    Par dynobremo dans le forum Composants VCL
    Réponses: 2
    Dernier message: 28/02/2003, 11h31
  5. Simulation de transmission de paquet entre différent réseaux
    Par MelloW dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 19h51

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