Je connais un type int est un type de valeur, mais ce sont des tableaux de types de valeur? Les types de référence? Types de valeur? Je veux passer un tableau à une fonction pour vérifier quelque chose. Devrais-je passer le tableau, comme il vient de passer la référence de, ou devrais-je passer comme ref?
Réponses
Trop de publicités?Les tableaux sont des mécanismes qui vous permettent pour traiter plusieurs points comme un seul collection. Microsoft® .NET Commun Language Runtime (CLR) prend en charge unique dimensions des tableaux, les tableaux multidimensionnels, et déchiqueté les tableaux (tableaux de tableaux). Tous les array les types sont implicitement dérivées de Système.Tableau, qui lui-même est dérivé à partir du Système.Objet. Cela signifie que tous les tableaux sont toujours les types de référence qui sont allouées sur la gestion de l' tas, et votre application est variable contient une référence à la matrice et de ne pas le tableau lui-même.
Les tableaux (même de la valeur de type int) sont des types référence en C#.
http://msdn.microsoft.com/en-us/library/aa288453%28VS.71%29.aspx:
En C#, les tableaux sont en fait des objets. Système.Tableau est le type de base abstrait de tous les types de tableau.
Le tableau lui-même est un type de référence. Les valeurs de ce tableau sont des valeurs ou des types de référence tel que déterminé par le type de données de tableau. Dans votre exemple, le tableau est un type de référence et les valeurs sont des valeurs types.
Tous les tableaux unidimensionnels implicitement mettre en oeuvre IList<T>
où <T>
est le type de données de la matrice. Vous pouvez utiliser cette interface comme type de données de votre paramètre de méthode à la place. Vous pouvez également utiliser IEnumerable<T>
pour le type de données. Dans les deux cas (ou même si vous venez d'utiliser int[]
) vous ne devriez pas avoir besoin de transmettre explicitement comme un ref
paramètre.