Est-ce qu'ils? Ou pour accélérer mon programme, dois-je les transmettre par référence?
référence est passé par valeur .
Les tableaux en .NET sont des objets sur le tas, vous avez donc une référence. Cette référence est passée par valeur, ce qui signifie que les modifications apportées au conten du tableau seront vues par l'appelant, mais réattribution le tableau ne:
void Foo(int[] data) {
data[0] = 1; // caller sees this
}
void Bar(int[] data) {
data = new int[20]; // but not this
}
Si vous ajoutez le modificateur ref
, le référence est passé par référence - et l'appelant verrait soit changer ci-dessus.
Ils sont passés par valeur (comme tous les paramètres qui ne sont ni ref ni out), mais la valeur is une référence à l'objet, donc ils sont effectivement passés par référence.
Oui, ils sont passés par référence par défaut en C #. Tous les objets en C # le sont, à l'exception des types de valeur. Pour être un peu plus précis, ils sont passés "par référence par valeur"; c'est-à-dire que la valeur de la variable que vous voyez dans vos méthodes est une référence à l'objet d'origine transmis. Il s'agit d'un petit point sémantique, mais qui peut parfois être important.