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 :

Etendre une classe


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut Etendre une classe
    Bonjour,

    Je suis entrain de me dire que je suis entrain de faire n'importe quoi . Alors avant d'aller plus loin je prefere demander. Meme si il ya des chances que vous me disiez que j'ai rien compris :s

    J'ai ecrit une classe qui est cense etendre la classe MembershipUser. (Celle ci ne prenant pas en compte le prenom je souhaite le rajouter)

    Bon ca fonctionne. Le truc c'est que quand je recherche un utilisateur j'appelle
    utlisateur.GetUtilisateur();
    Dans cette methode je me retrouve a appeler
    MembershipUser newmembership = Membership.GetUser(leuser);
    Il faudrait a partir de newmembership que je cree un nouvel objet utilisateur.

    Donc je pensais appeler mon constructeur
    utilisateur(MembershipUser muser)
    et dans ce constructeur est ce que je suis oblige de ressaisir tous mes champs (ex :
    this.UserName = muser.UserName;
    )
    est ce que je ne pourrais pas faire appel au constructeur precedant
    (
    public utilisateur(string providerName, string name, object providerUserKey, string email, string passwordQuestion, string comment, bool isApproved, bool isLockedOut, DateTime creation ...
    )?

    ou faire directement
    utilisateur monuser = Membership.GetUser(leuser);
    ?


    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
     
    sealed public class utilisateur : MembershipUser
     
     
    (...)
     
     
     public utilisateur(string providerName, string name, object providerUserKey, string email, string passwordQuestion, string comment, bool isApproved, bool isLockedOut, DateTime creationDate, DateTime lastLoginDate, DateTime lastActivityDate, DateTime lastPasswordChangedDate, DateTime lastLockoutDate,string prenom, string langue, string tel, string nom)
            : base(providerName, name, providerUserKey, email, passwordQuestion, comment, isApproved, isLockedOut, creationDate, lastLoginDate, lastActivityDate, lastPasswordChangedDate, lastLockoutDate)
        {
            Prenom = prenom;
            Tel = tel;
            Langue = langue;
            Nom = nom;
        }
     
        public utilisateur(MembershipUser muser)
        {
            this.UserName = muser.UserName;
    (etc...)
        }
     
     
    (...)
     
    public static utilisateur GetUtilisateur(string leuser)
        {
     
            MembershipUser newmembership = Membership.GetUser(leuser);
     
            utilisateur monuser = new utilisateur(newmembership);
     
    (...)
     
            return monuser;
        }

    D'avance merci

  2. #2
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Points : 661
    Points
    661
    Par défaut
    Le mieux est de tout encapsuler dans ta classe derivée de MembershipUser.
    Donc il faut faire un constructeur qui renseigne la classe mère (MembershipUser) plus les info propre à ta classe utilisateur.

    ca donne nviron ca :

    l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    utilisateur user = new utilisateur(Membership.GetUser(leuser),leuser.prenom);
    le constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    utilisateur(MembershipUser muser, string _prenom) : base (muser)
    {
    m_prenom  = _prenom
    }

  3. #3
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    Okip, merci.

    Bon le seul probleme c'est memship n'a que des constructeurs avec soit 0 soit 12 arguemnts.

    Mais bon ton explication m'eclaircit quand meme les idees

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

Discussions similaires

  1. Etendre une classe avec HttpServlet impossible
    Par SpeedOverflow dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/11/2011, 09h59
  2. Etendre une classe
    Par Invité dans le forum Langage
    Réponses: 5
    Dernier message: 07/03/2010, 17h56
  3. Etendre une class QT
    Par guiyomh dans le forum Débuter
    Réponses: 6
    Dernier message: 24/06/2008, 14h23
  4. Etendre une classe qui appartient a un package
    Par agent007se dans le forum Langage
    Réponses: 5
    Dernier message: 09/03/2007, 15h25
  5. [heritage] etendre une classe interne en dehors du package
    Par ChristopheH dans le forum Langage
    Réponses: 2
    Dernier message: 11/10/2004, 14h15

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