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 :

Dictionary: reference ou copy ?


Sujet :

C#

  1. #21
    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
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par MaximePalmisano Voir le message
    EDIT2 : J'ai pas l'impression que ce dont je parle dans mon message soit possible car msdn parle également de passage par référence http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx
    Qu'est-ce qui est pas possible ?

  2. #22
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Les objets de type référence ne sont pas vraiment "passés par référence" : c'est une référence qui est passée par valeur ; la méthode appelée ne peut pas changer la référence pour la faire pointer vers un autre objet (ce qui serait le cas avec un passage par référence)
    D'ailleurs je ne savais pas qu'il était possible en .NET managé de changer la référence au sein d'une méthode comme on pourrait le faire en C++.
    En fait, msdn donne bien le même terme que moi, cad passage par référence.

  3. #23
    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
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par MaximePalmisano Voir le message
    En fait, msdn donne bien le même terme que moi, cad passage par référence.
    Je comprends toujours pas ce que tu veux dire...

    Tu peux passer un type référence par référence ou par valeur :

    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
    // Type référence passé par valeur
    void Foo(string s)
    {
    }
     
    // Type référence passé par référence
    void Foo(ref string s)
    {
    }
     
    // Type valeur passé par valeur
    void Foo(int i)
    {
    }
     
    // Type valeur passé par référence
    void Foo(ref int i)
    {
    }

  4. #24
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Haha y'a un petit quiproco Moi je ne veux rien du tout ;p

    Juste que tu m'as repris en disant que c'était pas passé vraiment par référence donc je voulais en savoir plus la dessus. Mais msdn a l'air d'utiliser le même terme que moi pour la même chose, donc je suis un peu pommé

  5. #25
    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
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par MaximePalmisano Voir le message
    Juste que tu m'as repris en disant que c'était pas passé vraiment par référence donc je voulais en savoir plus la dessus. Mais msdn a l'air d'utiliser le même terme que moi pour la même chose, donc je suis un peu pommé
    Ma formulation était imprécise en fait... J'aurais du dire que "les types référence ne sont pas obligatoirement passés par référence. Ils peuvent être passés par référence, mais beaucoup de gens mélangent un peu les concepts et croient que les types référence sont toujours passés par référence, ce qui est faux. Ils ne sont passés par référence que si le paramètre est explicitement ref

    Et donc pour revenir à ce que je demandais : tu as dit à un moment "J'ai pas l'impression que ce dont je parle dans mon message soit possible" : j'ai pas compris qu'est-ce qui n'est pas possible...

  6. #26
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    De faire comme en C++ et de modifier la référence sur laquelle ça pointe. Mais j'ai eu ma réponse sur msdn je pense.

  7. #27
    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
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par MaximePalmisano Voir le message
    De faire comme en C++ et de modifier la référence sur laquelle ça pointe. Mais j'ai eu ma réponse sur msdn je pense.
    Bah si c'est possible... C'est ce qui se passe dans mon exemple (post #19), dans la méthode ByReference

  8. #28
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Encore, une fois j'oublie des mots, faut que j'arrête de faire deux choses en même temps

    De changer la valeur de la référence :p

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/09/2012, 12h20
  2. Réponses: 20
    Dernier message: 05/09/2011, 06h59
  3. Reference plutot que copie
    Par LeonardL dans le forum C#
    Réponses: 1
    Dernier message: 05/12/2008, 12h12
  4. des references et des copies en Python ?
    Par KINENVEU dans le forum Général Python
    Réponses: 3
    Dernier message: 07/06/2007, 22h37
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

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