dans C#, après avoir ajouté un objet à une collection, si une autre copie (copie profonde) est toujours créée?collection comportement de copie question
Répondre
Non, s'il s'agit d'une classe, la plupart des objets sont, seule une référence au même objet est stockée dans la collection. Si c'est un type de valeur, comme int, double et structs une copie est faite (pas une copie profonde, si la structure a une référence à un objet de classe qui à son tour ne sera pas copié).
Edit:
Pour copie complète des objets que vous devez d'abord créer une fonction de copie en profondeur.
Jetez un oeil à Create a Deep Copy in C# ou How to make a deep copy in C# ?
Ensuite, vous pouvez exécuter votre méthode de copie profonde avant d'ajouter des éléments à votre collection.
Remarque
Il est pas très souvent que vous avez vraiment besoin d'une vraie copie en profondeur. Souvent, il est préférable de repenser le flux de données dans votre application.
Si vous demandez ce qui se passe avec la collection, il dépend:
Normalement, une collection sera créée avec des fentes « vides », afin d'ajouter à cela ne causera pas une nouvelle collection avec un nouveau taille à créer.
Si, toutefois, l'ajout d'un nouvel élément dépasse cette taille, une nouvelle collection sera créée et tous les éléments y seront copiés.
Si vous demandez au sujet de l'article lui-même, encore une fois cela dépend:
S'il est un type de valeur (int, double, struct par exemple), la valeur sera copiée, si elle est un type de référence, une copie de la référence au même objet sera utilisée.
@Downvoter - veuillez expliquer. – Oded
- 1. NSString conserve copie question
- 2. C# DataBinding question de collection
- 3. python - comportement étrange question
- 4. Comportement Java Servlet Question
- 5. addEventListener() question/comportement étrange
- 6. collection personnalisée question
- 7. Question simple - Copie superficielle (VB.Net)
- 8. comportement du constructeur de copie implicite/opérateur d'affectation
- 9. C++: Question sur les constructeurs de copie
- 10. .net C# garbage-collection question
- 11. Question sur C# Generic Collection
- 12. Comportement étrange de la question CAML - pourquoi?
- 13. NHibernate question collection d'objets de requête
- 14. Comportement étrange lors du passage de la copie via '* this'
- 15. Question sur tableau copie superficielle en C#
- 16. Question du comportement du compilateur Java
- 17. Copie d'une collection SMO dans un tableau dans Powershell
- 18. Héritage avec génériques + collection + méthode = question
- 19. Copie avec webclient dans la bibliothèque de documents sharepoint question
- 20. Question à propos de la copie superficielle en C++
- 21. Question de définition de classe (Comportement jetable et singleton)
- 22. hook_menu() - un comportement inattendu (question de chemin plus long)
- 23. Question A propos Fk refrence dans la collection
- 24. Flex AdvancedDataGrid AdvancedDataGridRendererProvider childrenField ArrayCollection - Question sur le comportement
- 25. Comportement des CopyOnWriteArrayList
- 26. question sur la collection de tablecell et ses contrôles
- 27. Structures de données C# Question (Quelle collection utiliser?)
- 28. Copie d'un enregistrement dans VBA 2 (la nouvelle question)
- 29. Ecriture d'une valeur de pointeur de copie en copie profonde
- 30. Question concernant la configuration du comportement Moq en utilisant Setup()
Alors comment avoir une collection copiée en profondeur? – user496949