引用传递
//引用传递
static void SetY(out int x,out int y )
{
x = 0;
y = 0;
x = 1000;
}
static void Main(string[] args)
{
int x = 0;
int y = 10;
SetY(out x, out y);
Console.WriteLine($"x={x},y={y}");
}
结果是:x=1000,y=0
数组的引用传递
数组值的传递就是引用传递
static void Main(string[] args) 表示返回值是数组的引用
foreach(var item in y) 表示只读,把读出的数据存放在item容器里面
在函数里开辟的空间在堆里,不会收回,所以在主函数中不用重新开辟,只需要声明就可以
static int[] SetArray(int[] x)
{
//开辟空间处理内存中的结果
int[] y = new int[x.Length];
for (int i = 0; i < x.Length; i++)
{
y[i] = x[i]*2;
}
return y;
}
static void Main(string[] args)
{
int[] arr = new int[5] { 1, 2, 3, 4, 5 };
int[] y = SetArray(arr);
foreach(var item in y)
{
Console.WriteLine(item+" ");
}
}
ps.值传递要注意作用域