Je migre entre C++ et VB.NET dans mes entreprises de codage ... ce qui conduit à la confusion occasionnelle quand quelque chose est en valeur ou par référence dans VB.NET. Par exemple, disons que j'ai un tableau de MyObject qui est rempli avec un tas d'objets..NET conteneurs - quand sont membres Par référence, par valeur?
dim MyArr(5000) of MyObject
Maintenant, nous allons dire que les informations de ce tableau se déplace à travers les différentes structures de données:
dim MyList as new List(of MyObject)
for i as integer = 0 to 5000 step 1000
Mylist.add(MyArr(i))
next
puis
dim MyTable as new HashTable
dim i as integer = 0
for each O as MyObject in Mylist
if i mod 2 = 0 then
MyTable.add(O.ToString(), O)
end if
next
Dans le scénario ci-dessus, je crois que tout est en référence. Si j'extrais une entrée de "MyTable" et que je modifie ses membres MyObject, je pense que l'original de MyArr sera modifié. Cependant, j'ai rencontré des situations où je pensais que quelque chose était par référence, et c'était par valeur.
Les articles sont-ils toujours ajoutés aux conteneurs par référence, ou sont-ils parfois ajoutés en valeur?
Je suis confus.
Vous devriez nous parler un peu de ces «situations» où le partage était en valeur. Votre exemple MyArray est correct. –