引用传递
//引用传递
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.值传递要注意作用域