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

Windows Forms Discussion :

[C#][code] Utilisation des interfaces


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut [C#][code] Utilisation des interfaces
    Bonjour !!
    Je viens de découvrir les interfaces. Mai sje ne suis pas sur de savoir les manipuler convenablement.

    J'ai fait cette classe user:
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
     
    public interface Iuser
    {
        string U_LOGIN { get;}
        string U_SID { get;}
        string U_PORT { get;}
    }
     
    public class user : Iuser
    {
     
        private string _login = "";
        private string _sid = "";
        private string _port;
     
        public user(string login)
        {
            U_LOGIN = login;
            U_SID = this.CreateEnvironment(U_LOGIN);
            U_PORT = this.GetPort(U_LOGIN);
        }
     
        public string IAmConnected()
        {
    ...
    ...
        }
     
        private string CreateEnvironment(string login)
        {
    ...
    ...
            }
     
         private string GetPort(string login)
        {
     ...
     ...
        }
     
        //Accesseur
        public string U_LOGIN
        {
            get { return this._login; }
            private set { this._login = value; }
        }
        public string U_SID
        {
            get { return this._sid; }
            private set { this._sid = value; }
        }
        public string U_PORT
        {
            get { return this._port; }
            private set { this._port = value; }
        }
     
    }
    je voudrais donc savoir si c'est la bonne manière de procédé.
    Est-ce qu'à l'intérieur dans l'interface, on peut rajouter le mot clé set pour une variable.
    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public interface Iuser
    {
        string U_LOGIN { get;set;}
    ...
    }
    Dans ce cas, aux vues de la classe user et de l'accesseur pour U_LOGIN, seul la classe user elle même peut "setter" cette variable ??
    Donc, aucun intérêt de mettre set dans la définition de U_LOGIN pour l'interface ...
    Je me trompe ???

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Une interface sert à définir un contrat, un ensemble de règles que ta classe se devra d'implémenter pour être opérationnelle.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut
    Bonjour Morpheus,
    J'avais cru comprendre que l'interface était une sorte de "d'image" (une "vitrine") d'une classe qui pouvait être passé à un contructeur d'une autre classe afin d'avoir accès à certaines variables définie dans cette classe. Je me trompes ?
    Est-ce cela que tu entends par contrat ?

  4. #4
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Oui biensure tu peux ajouter set dans U_LOGIN. Le fait de mettre un setter dans l'interface pour le variable U_LOGIN oblige chaque classe qui implemente l'interface en question (Iuser) de definir un setter pour U_LOGIN. c'est tout l'interet des interfaces, definir des comportements personnallisables pour chaque classe qui l'implemente.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par défaut
    Citation Envoyé par mehdi_tn
    Oui biensure tu peux ajouter set dans U_LOGIN. Le fait de mettre un setter dans l'interface pour le variable U_LOGIN oblige chaque classe qui implemente l'interface en question (Iuser) de definir un setter pour U_LOGIN. c'est tout l'interet des interfaces, definir des comportements personnallisables pour chaque classe qui l'implemente.
    ok, si je mets un set pour U_LOGIN dans la définition de l'interface lors de l'imémentation de la classe, je serai obligé de définir la variable.
    Mais si je ne mets que get, ça sert à quoi ?
    Désolé d'être long à la détente ....

  6. #6
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Citation Envoyé par LE NEINDRE
    Mais si je ne mets que get, ça sert à quoi ?
    Si tu mes que get ca veut dire que les classes qui implemente l'interface sont tous obligés de redefinir la methode get et que le set est facultatif.

    Citation Envoyé par LE NEINDRE
    ok, si je mets un set pour U_LOGIN dans la définition de l'interface lors de l'implémentation de la classe, je serai obligé de définir la variable.
    vous n'etes oblige de definir aucune variable, par contre vous etes obligé de definir une propriete U_LOGIN.get.
    U_LOGIN.get peut contenir n'importe quoi tant qu'elle est definit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private string login;
    public string U_LOGIN
    {
           get { return "Toto"; }  //fonctionne correctement
          // get { return login; }  aussi
    }
    essayez d'utiliser des methodes pour votre interface au lieu des proprietes remplacez string U_LOGIN { get;} par string getLogin() et string U_LOGIN { set;} par setLogin(string value) et faites quelque tests

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

Discussions similaires

  1. [Turbo Pascal] Utilisation des interfaces graphiques en Pascal
    Par shangogo dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 10/05/2010, 22h13
  2. bonne utilisation des interfaces
    Par flo1981 dans le forum C#
    Réponses: 12
    Dernier message: 16/09/2009, 10h00
  3. Utilisation des interfaces dans des méthodes
    Par kyrilkarlier dans le forum Windows Forms
    Réponses: 7
    Dernier message: 26/05/2009, 14h29
  4. Réponses: 2
    Dernier message: 27/04/2006, 16h45

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