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 :

[C#]Passage d'objet en parametre


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut [C#]Passage d'objet en parametre
    Bonjour a tous,
    voila en fait je passe un objet a en paramètre d'un constructeur d'un objet b et normalement si je ne me trompe pas cet objet a devrait etre passé par référence, donc toute modification de cette objet a dans l'objet b entraine une modification de l'objet a dans toutes les classes où il est utilisé.
    Ce que je ne comprend pas c'est que cela n'a pas l'air de se passé dans le cas de mon application. Voici des bouts de code pour vous montrer comment je m'y prend:

    fichier1.cs: (ici je fait un appel a une classe et je passe un objet en param)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private CDroit droit;
    ...
    frmLogin fLogin = new frmLogin(this.droit);
    fLogin.ShowDialog();

    fichier2.cs: (ici je modifie l'objet passé en param dans le constructeur)
    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
    private CDroit _droit;
    ...
    public frmLogin(CDroit d)
            {
                InitializeComponent();
    
                // lecture du fichier de configuration
                this.opt = new COption();
                this.opt.loadXML();
    
                // droit
                this._droit = d; // garde en mémoire la ref de l'objet
    
                // ajout des logins
                this.ajoutLogin();
            }
    ...
    private bool verifLogin()
            {
                ...
                // definition du droit
                this._droit = new CDroit(droit); // ici je modifie l'objet du param constructeur
                ...
                return (true);
            }
    Or l'objet n'est pas modifié n'est pas modifié dans le fichier1. Et je ne comprend pas pourquoi vu que les objets devrait etre passé par reference donc dans le constructeur je ne copie pas un nouvel objet mais je fait pointé un objet vers la reference d'un autre.
    Aidez-moi s'il vous pait...
    Merci par avance.

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    excuser moi je viens de trouver la réponse.
    il s'aggissait en fait d'une simple erreur de logique car quand je fais:
    this._droit = new CDroit(droit); // ici je modifie l'objet du param constructeur

    je fait pointé this._droit vers un nouvelle objet. il est donc normal que l'objet passé en parametre ne soit pas modifié.
    désoler pour le dérangement et bonne continuation a vous tous.

Discussions similaires

  1. Passage d'objet par parametre get
    Par bapfuror dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/06/2009, 15h39
  2. Excel VBA et dll Com VB.net:passage d objet en parametre
    Par blueskyman dans le forum VB.NET
    Réponses: 0
    Dernier message: 02/02/2009, 03h22
  3. [POO] Calendrier et passage d' objet en parametre
    Par julienr dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/11/2007, 23h18
  4. [POO] passage nom objet dsn les parametres d'une fonction
    Par melou dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 21/10/2005, 18h26
  5. [ JSP ][ Débutant ] Passage d'objet par un forward
    Par captainpouet dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 08/04/2004, 11h33

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