1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace Chapter_02值传递和引用传递 8 { 9 /// <summary> 10 /// 值传递和引用传递 11 /// </summary> 12 class Zhi1 13 { 14 static void Main(string[] args) 15 { 16 #region 值方式传递值类型--->值没有改变 17 //int num = 5; 18 //Console.WriteLine("改变前Main方法中的num=" + num); 19 //Update1(num); 20 //Console.WriteLine("改变后Main方法中的num=" + num); 21 #endregion 22 23 #region 值方式传递引用类型--->值被改变 24 int[] arr = { 1, 2 }; 25 Console.WriteLine("改变前arr[0]={0}", arr[0]); 26 Update2(arr); 27 Console.WriteLine("改变后arr[0]={0}", arr[0]); 28 #endregion 29 30 #region 引用方式传递值类型--->值被改变 31 //int sz = 18; 32 //Console.WriteLine("改变前Main中sz={0}", sz); 33 //Update3(ref sz); 34 //Console.WriteLine("改变后Main中sz={0}", sz); 35 #endregion 36 37 #region 引用方式传递引用类型--->值被改变 38 string[] array = {"阿苏","女神"}; 39 Console.WriteLine("改变前array[1]={0}", array[1]); 40 Update4(ref array); 41 Console.WriteLine("改变后array[1]={0}",array[1]); 42 #endregion 43 44 Console.ReadKey(); 45 } 46 static void Update1(int num) { 47 num = 6; 48 } 49 50 static void Update2(int[] arrs) 51 { 52 arrs[0] = 2227; 53 //arrs = new int[5] { 55, 66, 77, 88, 99 }; 54 //Console.WriteLine("arrs[0]={0}", arrs[0]); 55 } 56 57 static void Update3(ref int sz) { 58 sz = 1; 59 } 60 61 static void Update4(ref string[] array) { 62 array[1] = "baby"; 63 } 64 65 } 66 }