Maison > développement back-end > C++ > `ToList()` crée-t-il une liste d'objets véritablement indépendante ?

`ToList()` crée-t-il une liste d'objets véritablement indépendante ?

DDD
Libérer: 2025-01-01 08:47:10
original
267 Les gens l'ont consulté

Does `ToList()` Create a Truly Independent List of Objects?

ToList() crée-t-il une nouvelle liste et des objets indépendants ?

Lorsqu'il s'agit de types de référence, il est essentiel de comprendre le comportement de ToList (). Bien qu'il puisse créer une nouvelle liste, les objets sous-jacents peuvent toujours faire référence à ceux de la liste d'origine.

Instance :

Considérez une classe MyObject avec une propriété SimpleInt. Une liste de MyObjects (objs) est créée et une liste supplémentaire est générée en appelant ToList() sur objs.

Analyse des fonctions :

La méthode ChangeToList accepte un paramètre de type List et effectue ce qui suit :

  1. Appelle ToList() sur l'objet paramètre, créant ainsi objectList.
  2. Modifie la propriété SimpleInt du premier élément de objectList.
  3. Renvoie la propriété SimpleInt du premier élément de la liste d'origine (objs).

Résultat :

Étant donné que MyObject est un type de référence, la objectList fait référence aux mêmes objets que les objs. Par conséquent, la mise à jour de objectList[0].SimpleInt modifie également objs[0].SimpleInt.

Par conséquent, dans l'exemple donné, la méthode ChangeToList renverra 5, indiquant que la modification s'est propagée à la liste d'origine. Pour résumer, ToList() crée une nouvelle liste, mais les éléments qu'elle contient peuvent toujours référencer des objets dans la liste d'origine. Ce comportement est particulièrement pertinent lorsque vous travaillez avec des types de référence tels que des classes ou des tableaux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal