Modification d'éléments dans une liste de structures
Lorsque vous travaillez avec une liste de structures, tenter de modifier un élément individuel à l'aide d'une affectation simple entraîne des résultats dans le message d'erreur "Impossible de modifier la valeur de retour de System.Collections.Generic.List.this[int] car ce n'est pas une variable." Cela se produit en raison de la sémantique du type valeur des structures.
Comprendre la sémantique du type valeur
En C#, les variables de structure contiennent des copies de données, c'est-à-dire toutes les modifications apportées à une copie. n'affecte pas l'original. Ce comportement diffère des classes, où les références d'objet pointent vers les données réelles.
Accès et modification des éléments Struct
Dans l'exemple fourni, lors de l'attribution de MyList[1]. Nommé « bob », une nouvelle instance de MyStruct est créée et affectée à la variable. Cependant, cette nouvelle instance ne fait pas référence à l'élément d'origine dans la liste. Par conséquent, l'élément d'origine reste inchangé.
Options de modification des éléments de structure dans une liste
Pour modifier les éléments réels dans une liste de structures, envisagez les approches suivantes :
Choisir entre les structures et les classes
La décision d'utiliser une structure ou une classe ne devrait pas reposer en premier lieu sur la nécessité de les stocker dans des collections. Considérez plutôt la sémantique et les exigences des données représentées. Les structures sont généralement préférées pour les objets de valeur qui représentent une valeur unique et immuable. Les classes, en revanche, excellent dans la représentation d'objets avec un état mutable et des relations potentiellement complexes.
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!