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 }