zoukankan      html  css  js  c++  java
  • 初级知识点二——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关键字传递,这样传递的其实是实体在堆中的地址,指向了传递的实体,因此方法操作时,会改变原先的实体对象。

  • 相关阅读:
    文件处理
    集合 字符编码
    3-11作业
    win 10 在vs2017下对mpi的安装以及认识
    java中二维数组的排序
    java中Arrays的用法
    java中随机二维数组中寻找最大值并输出坐标
    用java打印图形
    面向对象object与constructor
    for each in for in 与for of
  • 原文地址:https://www.cnblogs.com/leiGameDesigner/p/7107651.html
Copyright © 2011-2022 走看看