这让我大吃一惊,我一直想把它包裹好几年。我在这里经历了几个问题,但我仍然没有得到它。我已经访问了Jon Skeet的页面等等。我尝试编写自己的代码,看看我是否理解了这个概念,但是当我尝试打印出nums [0]下面的代码时,它给了我500,不应该打印出来1因为数组应该按值传递,因为“C#默认按值传递”?
更新:aThing只是随机改变一个索引,看看r中的变化是否反映在nums中
static void Main(string[] args)
{
int[] nums = new int[] { 1, 2, 3, 4 };
aThing(nums);
Console.WriteLine(nums[0]);
Console.ReadLine();
}
static void aThing(int[] r)
{
r[0] = 500;
r = null;
}
为了感兴趣,我如何在不修改麻木的情况下修改r?
答案 0 :(得分:0)
复制它。
解决方案是像这样调用你的方法:
aThing(nums.ToArray()); // copy the array before passing it