我有以下例如用於陣列修改陣列與方法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]);
}
爲什麼它打印
1,-3,20-
代替
1,-3,-3
?
問題尋求幫助調試絕(「爲什麼不是這個代碼工作的?」)包括所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建最小,完整和可驗證示例。 –
[按值和引用傳遞數組]的可能重複(http://stackoverflow.com/questions/10325323/passing-arrays-by-value-and-by-reference) – ASh
公平地說,如果您運行OP代碼它會給出他表示的結果。 OP的誤解與數組等引用類型通過傳遞參數*的值*來傳遞。 –