Maison > développement back-end > C++ > Un tableau de types valeur (par exemple, `int[]`) est-il un type référence ou un type valeur en C# ?

Un tableau de types valeur (par exemple, `int[]`) est-il un type référence ou un type valeur en C# ?

Linda Hamilton
Libérer: 2025-01-12 08:33:43
original
792 Les gens l'ont consulté

Is an Array of Value Types (e.g., `int[]`) a Reference Type or a Value Type in C#?

Est-ce que int[] en C# est un type référence ou un type valeur ?

En C#, les types de données de base comme int sont des types valeur. Ils sont stockés directement dans des variables et leurs valeurs sont copiées lorsqu'elles sont transmises aux méthodes ou affectées à d'autres variables.

Cependant, les tableaux de types valeur se comportent différemment. Même si les éléments du tableau sont des types valeur, le tableau lui-même est un type référence. En effet, la référence du tableau pointe vers l'emplacement mémoire où les éléments du tableau sont stockés, et non vers les éléments eux-mêmes.

Impact sur les appels de fonctions

Lors du passage d'un tableau à une fonction, il n'est pas nécessaire de spécifier le modificateur ref ou out car les tableaux sont passés par référence par défaut.

Les fonctions qui reçoivent un tableau ne peuvent accéder qu'à une référence au tableau, pas aux éléments réels. Si la fonction modifie des éléments, ces modifications seront reflétées dans le tableau d'origine.

Exemple :

Considérez le code suivant :

<code class="language-csharp">int[] array = { 1, 2, 3 };
ModifyArray(array);
Console.WriteLine(array[0]); // 输出:4</code>
Copier après la connexion

ModifyArrayLa fonction modifie le premier élément du tableau :

<code class="language-csharp">public static void ModifyArray(int[] arr)
{
    arr[0] = 4;
}</code>
Copier après la connexion

Même si nous passons le tableau par valeur (sans le modificateur ref), les modifications apportées à la fonction seront reflétées dans le tableau d'origine car le tableau est un type référence.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal