值传递和引用传递专题案例

本文通过四个实例演示了C#中值类型与引用类型的传递机制:值类型通过值传递,方法内的修改不会影响原始变量;而引用类型通过引用传递,方法内对其的更改会影响原始变量。
 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 }

 

转载于:https://www.cnblogs.com/GIRLANDBOYS/p/7002326.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值