zoukankan      html  css  js  c++  java
  • c#中关键词out和ref的区别

    c#中关键词out和ref用来表明以传引用的方式传递参数。

    区别如下:

    如果方法的参数用out标记,表示方法被调用前不需初始化参数,方法内不能读取此参数的值,在方法返回前必须向此参数写入值;

    如果方法的参数用ref标记,表示方法被调用前必须初始化参数,在方法内部可以读取或者读写此参数,也可不对此参数做任何处理。

    out事例:

    class Program
        {
            static void Main(string[] args)
            { 
                int val;  //无需初始化
                GetValue(out val);
                Console.WriteLine(val);
            }
    
            public static void GetValue(out int a)
            {
                a = 20; //必须赋值
            }       
        }

    最后val的输出值为20

    ref事例:

    class Program
        {
            static void Main(string[] args)
            { 
                int val=5; //必须初始化
                GetValue(ref val);
                Console.WriteLine(val);
            }
    
            public static void GetValue(ref int a)
            {
                a += 20;  //可以读写,也可不对此参数做任何处理
            }       
        }

    最后val的输出值为25

    注:上面的两个例子,我操作的都是的值类型,对于引用类型,一样可以使用out和ref关键词。

  • 相关阅读:
    多进程交替控制输出
    最长不重复子串
    const关键字的使用
    C++类的内存分布
    shell编程--awk 、sed 命令介绍
    gcc 6.0编译opencv出错
    NTP同步网络时间
    树莓派配置RTC时钟(DS3231,I2C接口)
    浏览器播放rtmp流
    nginx配置hls
  • 原文地址:https://www.cnblogs.com/qk2014/p/4823388.html
Copyright © 2011-2022 走看看