Maison >développement back-end >C++ >Les tableaux et listes C# sont-ils transmis par valeur ou par référence ?
Tableaux et listes en C# : passer par référence ou par valeur ?
En C#, les tableaux et les listes sont transmis par valeur. Cela signifie que lorsque vous transmettez ces structures de données comme arguments à des méthodes ou des fonctions, seules les copies des références à celles-ci sont transmises.
Transmis par valeur :
Dans .NET, les tableaux et les listes sont des objets stockés sur le tas. Lorsque ces objets sont passés en arguments, les références à leurs emplacements en mémoire sont copiées. Cela signifie que toute modification apportée au contenu d'un tableau ou d'une liste est observable par l'appelant. Cependant, si vous réaffectez le tableau ou la liste elle-même (c'est-à-dire modifiez la référence), ces modifications ne seront pas détectées par l'appelant.
Exemple :
<code class="language-c#">void Foo(int[] data) { data[0] = 1; // 调用方可以看到此更改 } void Bar(int[] data) { data = new int[20]; // 调用方看不到此更改 }</code>
Utiliser la référence pour le passage par référence :
Si vous avez besoin que l'appelant observe à la fois les changements de contenu et les réaffectations de références, vous pouvez utiliser le modificateur ref. Cela transmettra référence par référence, garantissant que toutes les modifications apportées à la référence elle-même sont visibles pour l'appelant.
Exemple d'utilisation de la réf :
<code class="language-c#">void Foo(ref int[] data) { data[0] = 1; // 调用方可以看到此更改 data = new int[20]; // 调用方也可以看到此更改 }</code>
Ainsi, en C#, les tableaux et les listes sont passés par valeur par défaut. Si vous souhaitez passer la référence elle-même par référence, vous pouvez modifier la signature de la méthode pour inclure le modificateur ref.
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!