Ich habe folgendes Beispiel für Array-ModifikationArrays & Methoden C#
static void main()
{
int[] arr1 = { 1, 4, 5 };
Console.WriteLine("{0}", arr1[0]);
ModifyArray(arr1);
Console.WriteLine("{0}", arr1[0]);
}
static void ModifyArray(int[] arr1)
{
arr1[0] = 20;
arr1 = new int[5] { -3, -1, -2, -3, -4 };
Console.WriteLine("{0}", arr1[0]);
}
Warum druckt
1, -3,20
statt
1, -3, -3
?
Fragen Debuggen Hilfe suchen muss („warum nicht dieser Code funktioniert?“) Fügen Sie das gewünschte Verhalten, ein bestimmtes Problem oder einen Fehler und den kürzesten Code ein, der für die Reproduktion in der Frage erforderlich ist. Fragen ohne eine klare Problemstellung sind für andere Leser nicht nützlich. Siehe: Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels. –
Mögliches Duplikat von [Passing Arrays nach Wert und nach Referenz] (http://stackoverflow.com/questions/10325323/passing-arrays-by-value-and-by-reference) – ASh
In Fairness, wenn Sie den OPs-Code ausführen es wird die Ergebnisse geben, die er angegeben hat. Das Missverständnis des OP besteht darin, dass Referenztypen wie Arrays übergeben werden, indem eine Kopie der Referenz * mit dem Wert * übergeben wird. –