初级知识点二——C#值传递

C#中有值传递和引用传递,这个东西一直有点儿绕,今天花点儿时间来把这个事情搞清楚。

  • 传递值类型的参数

  值类型的变量,是直接包含其数据的。实际上,在向方法传递一个值类型变量,其实就意味着向方法传递了一个变量的副本。在方法内部发生的对参数的改版,不影响原变量的值。

 1 class PassValue
 2 {
 3        static  void Main ()
 4       {
 5              int Value = 5;
 6              int Value2  = Double(Value);
 7              System.Consle.WriteLine(Value == Value2);
 8       }
 9       
10        static int Double(int value)
11        {
12              return value*2;
13         }
14 }    

           在这个例子中,最终的结果为false,Value = 5,值未被改变。

     通过引用传递值类型:

            如果使用 ref 关键字来传递值参数,其余的与上面案例都相同,那么最终的运行结果为true。因为此时已经将Value的引用传递了过去,实际上Double(int value)方法操作的就是Value本身。

  总结:

  1. 值传递,传递的并不是以前的实体,而只是实体的一个副本,在方法中修改传入的值,并不会影响之前的值实体。

  2. 引用传递,比如利用ref、out关键字传递,这样传递的其实是实体在堆中的地址,指向了传递的实体,因此方法操作时,会改变原先的实体对象。

转载于:https://www.cnblogs.com/leiGameDesigner/p/7107651.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值