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

VB.NET Discussion :

problème de compréhension Valeur et référence


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Dessinateur vrd
    Inscrit en
    Janvier 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Dessinateur vrd
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2015
    Messages : 46
    Par défaut problème de compréhension Valeur et référence
    Bonjour,

    Avez vous des morceau de code concret avec des variable par "valeur" et par "Référence"
    Il y a un truc qui m’échappe dans le cour de M Lasserre

    Merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2012
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2012
    Messages : 80
    Par défaut
    qu'est ce qui t'échappe dans le byref & byval?

    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
     
     
     
    dim ref as string = "toto"
     
    ajouterTexteByval(ref)
     
    dim after as string = ref       'là, ref == "toto"
     
    ajouterTexteByref(ref)
     
    dim after as string = ref       'ici, ref == "bonjour"
     
    sub ajouterTexteByval(byval pReference as String)
     
    pRefernece = "bonjour"
     
    endsub
     
    sub ajouterTexteByref(byref pReference as String)
     
    pRefernece = "bonjour"
     
    endsub

  3. #3
    Membre averti
    Homme Profil pro
    Dessinateur vrd
    Inscrit en
    Janvier 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Dessinateur vrd
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2015
    Messages : 46
    Par défaut
    Voila le soucis

    Dim B = A

    Quand on déclare B et on affecte a A, pour moi B va forcément prendre la valeur ou référence de A.

    je recherche des morceau de code qui pourrai m'aider a comprendre.

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par mickael62800 Voir le message
    Voila le soucis

    Dim B = A

    Quand on déclare B et on affecte a A, pour moi B va forcément prendre la valeur ou référence de A.

    je recherche des morceau de code qui pourrai m'aider a comprendre.
    Bonjour,

    --> Dans un 1er temps :

    on n'affecte pas B à A mais la valeur de A à la variable B (B étant de type Object) !

    --> Dans un seconds temps :

    Dans ton cas de figure (déclaration de variable puis affectation) il n'existe pas de notion "par référence" !

    -- >Enfin :

    L'exemple de myNameIsFlo reste assez explicite. Quant à savoir quand tu devras faire usage du passage par référence puisque d'usage nous utilisons principalement "ByVal" (tout dépends le contexte) tu le sauras lorsque tu en auras besoin.

    A+

  5. #5
    Membre averti
    Homme Profil pro
    Dessinateur vrd
    Inscrit en
    Janvier 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Dessinateur vrd
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2015
    Messages : 46
    Par défaut
    Merci pour vos réponse

    Dans le cours le cours VB.net

    Travaillons sur A et B, 2 variables ayant la même 'nature'
    A existant déja, faisons:

    Dim B=A

    Puis modifions la valeur de A, cela modifie t'il B?

    les variables par valeur ou référence ne réagissent pas de la même manieres:

    Si le type de variable est par valeur, chaque variable ayant sa valeur, B n'est pas modifié.

    Si le type de variable est par référence, chaque variable est definie par sa référence; faire A=B entraine que A et B ont les même reference.

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Si tu ne comprends pas cette phrase je peux bien te proposer un exemple mais je ne suis pas convaincu que cela t'aide davantage :

    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
     
            Dim A = 10
            Dim B = 0
            Dim result = String.Empty
            'On ajoute 10 à la variable B
            result = AddByVal(A, B)
            MsgBox("Résultat retourné par la fonction : " & result & vbNewLine & _
                   "Valeure de A après l'ajout : " & A & vbNewLine & _
                   "Valeure de B après l'ajout : " & B)
     
            '--> On se rends compte qu'après exécution de la fonction le résultat est correcte et que la valeur de la variable B reste 0
     
     
            'On ajoute 10 à la variable B
            result = AddByRef(A, B)
            MsgBox("Résultat retourné par la fonction : " & result & vbNewLine & _
                   "Valeure de A après l'ajout : " & A & vbNewLine & _
                   "Valeure de B après l'ajout : " & B)
     
            '--> On se rends compte qu'après exécution de la fonction le résultat est correcte mais la variable B a été modifiée à l'intérieur de la fonction et elle est maintenant à 10 puisqu'il s'agit ici d'une référence de B       (on pointe vers l'adresse mémoire)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      Private Shared Function AddByRef(ByVal A%, ByRef B%) As String
            ' Cela impacte la référence de B qui se situe à l'extérieur de cette fonction !
            B += A
            Return B.ToString
        End Function
        Private Shared Function AddByVal(ByVal A%, ByVal B%) As String
            B += A
            Return B.ToString
        End Function
    J'ai repris l'exemple avec les variables A et B....

    J'espère que ça sera plus clair.

    A+

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

Discussions similaires

  1. [Débutant] problème de compréhension
    Par Sylvester dans le forum Général Java
    Réponses: 18
    Dernier message: 21/07/2005, 09h16
  2. Réponses: 5
    Dernier message: 11/04/2005, 10h21
  3. [C#] Problème de compréhension de System.Convert ET Provider
    Par papouAlain dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/11/2004, 21h52
  4. onclipevent (problème de compréhension)
    Par stephane eyskens dans le forum Flash
    Réponses: 8
    Dernier message: 24/09/2003, 15h09
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

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