C#之ref练习
给自己复习的代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ref与out的演示 { class Program { static void Main(string[] args) { #region 值类型的值传递和值类型的引用传递 int i1 = 12; Console.WriteLine("before:{0}", i1); // changevalue(i1);值传递:把i1的值拷贝一份传递给value,在方法中值的改变,不会改变i1的值。 changevalue(ref i1);//引用传递,相当于把i1的地址传递给,在方法中的改变也会改变i1的值。 Console.WriteLine("after:{0}", i1); #endregion #region 引用类型的值传递和引用传递 int[] arr = { 12,14,19,30}; changevalue(arr); Console.WriteLine("before:{0}",arr[0]); //传递的是arr数组的引用 changevalue(arr); Console.WriteLine("after:{0}",arr[0]); changevalue(ref arr); Console.WriteLine("after:{0}",arr[0]); Console.WriteLine("after:{0}",arr[1]); Console.WriteLine("after:{0}", arr[2]); Console.WriteLine("after:{0}", arr[3]); #endregion Console.ReadLine(); } static void changevalue(int value) { value = 34; } static void changevalue(ref int value) { value = 333; } static void changevalue(int[] arr) { arr[0] = 1221; } static void changevalue(ref int[] arr) { Console.WriteLine("method:before--{0}",arr[0]); arr = new int[] {233,155,166,189 }; } } }

浙公网安备 33010602011771号