zoukankan      html  css  js  c++  java
  • ref与out

     一、 ref    

    下面的代码主要是说了这么个事,有引用类型(数组 int[] ints)和值类型(int i) ,这两个有相同的初始值都是0 。通过方法对这两个进行修改,
    输出之后数组值是100,整型还是0。
    继续看······

    1
    class Program 2 { 3 static void founction(int[] ints, int i)//定义方法,通过数组传值和通过整型传值(就是一个引用传值和一个值传参) 4 { 5 ints[0] = 100;//方法里,对引用进行修改。 6 i = 100; //对整型进行修改。 7 } 8 9 10 11 12 public static int Main() 13 { 14 int i = 0; 15 int[] ints = { 0, 1, 2, 3, 4 }; 16 17 //输出原始数据 18 Console.WriteLine("数组引用原始数据:"+ints[0]);// ints[0]=0 19 Console.WriteLine("值类型原始数据:"+i); // int i = 0 20 Console.WriteLine("*******************************************"); 21 22 23 //调用方法进行传参 24 founction(ints, i); 25 26 27 //输出传参之后的改变数据 28 29 Console.WriteLine("数组引用原始数据:" + ints[0]);// ints[0]=100 30 Console.WriteLine("值类型原始数据:" + i); // int i = 0 31 Console.ReadLine(); 32 return 0; 33 34 } 35 }




    ** 上面的代码很简单,可是我们通过上面知道了。值类型传参对其进行修改是无效的,而引用类型是可以的。我们想让值类型传参拥有引用类型传参的效果,
    就是可以对其修改,对初值产生影响。那我们就加上ref关键字。就在方法传值处加上 ref。

    修改如下:

     static void founction(int[] ints, ref int i)//使其值类型拥有引用类型的效果 
         {
               ints[0] = 100;       
         i = 100;      //这样使 在方法中,对值类型修改的值可以对初值产生影响。    i=100 啦
       }

    **当然要一一对应啦,调用方法中也应该一一对应,修改为:
     
    founction(int[] ints,  ref int i)//

    总结:(1)ref关键字,迫使值类型通过引用来传递。
    (2)在方法中注明ref,同事调用是也应该参数一致。


    二、out
    说明: 你不想让值类型有初值。不想引起混乱。
    看下面代码···
     class Program
        {
            static void founction( out int     i
       {

         i = 100;

       }
    public static int Main() { int i; //加了out,就可以不对值类型进行初始化了。
        founction(ints, out i); Console.WriteLine("值类型数据:" + i); // int i = 100
    Console.ReadLine(); return 0; }

    
    
    总结:out ,可以让你吐槽,允许可以不对值类型初始化,即使你初始化了,加了out,也会对其忽略,值保留修改后的值。

    本人菜鸟,请指点···谢谢···





























  • 相关阅读:
    面试必备的数据库悲观锁与乐观锁
    5分钟带你读懂事务隔离性与隔离级别
    带你了解数据库中事务的ACID特性
    带你了解数据库中group by的用法
    带你了解数据库中JOIN的用法
    一篇带你读懂TCP之“滑动窗口”协议
    通过“表白”的方式,让我们快速了解网络协议
    聊一聊Iterable与Iterator的那些事!
    一篇让你明白进程与线程之间的区别与联系
    MySQL 索引的增删查
  • 原文地址:https://www.cnblogs.com/sunchong/p/2555460.html
Copyright © 2011-2022 走看看