虽然我们把byte数组传递给了方法ChangeData去处理了,但是处理完a,b的数据实现了交换,因为数组是引用类型,所以上例中aaa和a都是指向的同一段地址,所以一个aaa改变后,a数组的值对应的有改变了。
值类型举例:
static void Main(string[] args){//byte[] a = new byte[] { 1, 2, 3, 4, 5 };//byte[] b = new byte[] { 6, 7, 8, 9, 10 };//ChangeData(a, b);//Console.Write($"a数组的值:");//for (int i=0;i< a.Count();i++)//{// Console.Write($"{a[i]} ");//}//Console.WriteLine("\n ***********");//Console.Write($"b数组的值:");//for (int i = 0; i < b.Count(); i++)//{// Console.Write($"{b[i]} ");//}int a = 5;int b = 8;ChangeValue(a,b);Console.WriteLine($"a的值:{a}");Console.WriteLine($"b的值:{b}");Console.ReadKey();}//private static void ChangeData(byte[] aaa, byte[] bbb)//{// int tempa = aaa.Count();// int tempb = bbb.Count();// int count = tempa > tempb ? tempb : tempa;// byte temp = 0;// for (int i = 0; i < count; i++)// {// temp = aaa[i];// aaa[i] = bbb[i];// bbb[i] = temp;// }//}private static void ChangeValue(int aaa, int bbb){int temp = aaa;aaa = bbb;bbb = temp;}
运行结果:
我们看值交换后aaa和bbb值变化了,原始的a和b的值并没有变化。
“在看”和转发是对我最大的支持!
