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

Dotnet Discussion :

Tableaux en VB.NET


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 19
    Par défaut Tableaux en VB.NET
    bonjour voici le code

    Code VB.NET : 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
    37
    38
    39
    40
    41
    42
    43
    44
     
    Sub Main()
            Dim a(3) As String
            Dim b(3) As String
     
            a(0) = "oui"
            a(1) = "non"
            a(2) = "yes"
            a(3) = "not"
            For i = 0 To 3
     
                Console.WriteLine(a(i))
     
            Next
            b(0) = "ya"
            b(1) = "nein"
            b(2) = "si"
            b(3) = "no"
     
            For i = 0 To 3
     
                Console.WriteLine(b(i))
            Next
     
            b = a
            For i = 0 To 3
                Console.WriteLine(a(i))
                Console.WriteLine(b(i))
            Next
           a(0) = "oui"
            a(1) = "non"
            a(2) = "yes"
            a(3) = "not"
     
            b(0) = "ya"
            b(1) = "nein"
            b(2) = "si"
            b(3) = "none"
     
            b = a
            For i = 0 To 3
                Console.WriteLine(a(i))
                Console.WriteLine(b(i))
            Next

    voici ce qu'il m'affiche

    oui
    non
    yes
    not
    ya
    nein
    si
    no
    oui
    oui
    non
    non
    yes
    yes
    not
    not
    ya
    ya
    nein
    nein
    si
    si
    none
    none
    je ne comprends pas et j'ai exposé le problème sur d'autres forums, je ne comprends rien aux explications.
    Dans mon esprit en disant b=a je pense que je mets les valeurs de a dans b avec pour exemple b(0) qui devient « oui ».
    C'est ce qui se passe dans le premier cas où je mets b=a et je fais console.writelline (a) et console.writeline(b).


    dans le deuxième cas ou je redéfinis les valeurs de a et de b en modifiant uniquement la dernière de b , pourquoi ne me présente il pas la même réponse avec deux fois les valeurs de a puisque j'ai mis les valeurs de a dans b
    quelq'un peut il m'expliquer mais pour un débutant
    cordialement

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 983
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 983
    Par défaut
    Dans mon esprit en disant b=a je pense que je mets les valeurs de a dans b avec pour exemple b(0) qui devient « oui ».
    C'est justement là que tu te trompe.
    En .Net a et b sont des Objets.
    Et lorsque tu fais b=a, tu ne change pas les valeurs, tu changes un pointeur vers une adresse mémoire.

    Dim a(3) As String => créée a à l'adresse mémoire 1
    Dim b(3) As String => créée b à l'adresse mémoire 2
    donc
    a => [Adresse 1]
    b => [Adresse 2]


    A et B sont deux adresses mémoires différentes et modifier les valeurs à l'adresse 1 n'impactera pas les valeurs dans l'adresse 2.

    Mais ensuite :
    b = a => change l'adresse mémoire de b pour pointer vers la même que a
    donc
    a => [Adresse 1]
    b => [Adresse 2][Adresse 1]


    A et B ont la même adresse (Adresse 1).
    Donc lorsque tu modifie A, tu modifies le contenu de l'adresse 1 et lorsque tu modifie B, tu modifie également le contenu de l'adresse 1.

    Tu peux comparer ça à une boite au lettre.
    Paul (A) habite à Lyon et Lola (B) habite à Paris.
    Lorsque tu envoie du courrier à Paul et à Lola, la poste envoie ces courriers à deux endroits différents.

    Maintenant en faisant B = A, tu dis que Paul et Lola se sont rencontrés, sont tombés amoureux et ont emménagés ensemble à Lyon.
    Du coup lorsque tu envoies un courrier à Paul ou à Lola, ça arrive désormais dans la même boite aux lettres.

Discussions similaires

  1. [C++/CLI]Structures et tableaux en C++ .NET
    Par kinouseb dans le forum C++/CLI
    Réponses: 2
    Dernier message: 08/12/2006, 14h01
  2. Réponses: 4
    Dernier message: 10/05/2006, 10h36
  3. [VB.Net] Que choisir tableaux ou collections ?
    Par Pasiphae dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/03/2006, 15h35
  4. Réponses: 8
    Dernier message: 06/03/2006, 14h44

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