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 :

Affectation d'une variable à une autre [Débutant]


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Par défaut Affectation d'une variable à une autre
    Bonjour à tous,

    Ma question est vraiment d'un grand débutant, et j'arrive pas à trouver la réponse dans le forum.

    Explication:
    J'ai déclarer dans une classe "toto" deux list de string dont une liste avec assesseur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
            private List<string> _lst_sAccounts
            public List<string> lst_sAccounts
            {
                get { return _lst_sAccounts; }
                set { _lst_sAccounts = value; }
            }
     
            private List<string> _lst_sAccounts_Tmp
    une fois instancié un objet obj de classe toto j'affecte des valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            toto obj = new toto();
            obj.lst_sAccounts = myList;
    puis lors de l'appel de la méthode myMth de la classe toto j'affecte ma liste et la triture un peu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
          private void myMth()
          {
                  _lst_sAccounts_Tmp =  _lst_sAccounts;
     
                 // bla bla de code
                 // et puis je la vide par 
     
                 _lst_sAccounts_Tmp.Items.Clear();
     
          }
    Problème la liste _lst_sAccounts est effacé également alors que je n'efface que _lst_sAccounts_Tmp.

    Je pense que _lst_sAccounts_Tmp = _lst_sAccounts; n'est pas la bonne solution pour conserver mes valeurs de bases

    Mais comment dois-je procéder ? Merci de vos retour sur ce problème de débutant

  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
    List<T> est une classe, donc un type référence. Une variable de type List<T> contient donc une référence vers la liste, pas la liste elle-même. Quand tu fais _lst_sAccounts_Tmp = _lst_sAccounts;, tu copies la référence, pas la liste. Donc la variable _lst_sAccounts_Tmp contient une référence vers la même liste que _lst_sAccounts, donc si tu modifies la liste en passant par l'une des variables, ça la modifie aussi pour l'autre.

    Si tu veux conserver une copie indépendante, il faut copier le contenu de la liste dans une nouvelle liste. Le plus simple pour ça est d'utiliser la méthode ToList() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _lst_sAccounts_Tmp =  _lst_sAccounts.ToList();
    (par contre je ne comprends pas trop l'utilité de copier _lst_sAccounts si c'est pour la vider aussitôt après...)

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Par défaut
    Merci à toi pour cette réponse qui a le mérite de fonctionner mais dont l'explication est claire et bien utile.

    Tu es un chef

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

Discussions similaires

  1. affecter le résultat d'une requete à une variable globale
    Par Giuseppe24 dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 26/03/2010, 14h13
  2. affecter le resultat d'une requete à une variable
    Par thor18 dans le forum VBA Access
    Réponses: 13
    Dernier message: 22/11/2007, 16h40
  3. Affecter le résultat d'une requête à une variable
    Par PSYcoZZ dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/02/2007, 13h27
  4. affecter le résultat d'une requête à une variable
    Par zut94 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/10/2005, 17h21
  5. Affecter résultat SQL d'une requête à une variable
    Par bozolozo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/01/2005, 17h37

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