zoukankan      html  css  js  c++  java
  • ref和out的区别

    首先:两者都是按地址传递的,使用后都将改变原来参数的数值,都是通过被调用方来改变其数值

    其次:ref是可以将参数的数值传递到函数内部,然后再改变,而out则是传递的时候先清空,还有ref传递前,调用方要先对参数进行初始化,out不用,是在被调用方内进行初始化。但有一个共同点就是不管是out,还是ref都要先对变量进行声明。

    out 例子:

     1 class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             int a;
     6             new Program().Run(out a);
     7 
     8             //输出的结果为12
     9             Console.WriteLine(a);
    10             Console.ReadKey();
    11         }
    12 
    13         public  void  Run(out int a)
    14         {
    15 
    16             a = 12;
    17           
    18         }
    19       
    20     }

    ref 例子:

     1 class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             int a=0;  //要实现对其进行初始化,否则报错
     6             new Program().Run(ref a);
     7 
     8             //输出的结果为12
     9             Console.WriteLine(a);
    10             Console.ReadKey();
    11         }
    12         public  void  Run(ref int a)
    13         {
    14             a = 12;
    15         }
    16       
    17     }
  • 相关阅读:
    两个数组的交集 II
    存在重复
    旋转数组
    从排序数组中删除重复项
    ps 修补工具
    最长公共前缀
    meta 属性
    19年面试总结
    java文件下载以及中文乱码解决
    关于web开发中,图片加载失败替换为默认图片
  • 原文地址:https://www.cnblogs.com/nanyangzp/p/3314525.html
Copyright © 2011-2022 走看看