• 技术文章 >后端开发 >C#.Net教程

    C# 7.0之ref locals and returns(局部变量和引用返回)详解

    黄舟黄舟2017-03-16 11:13:46原创1025

    这篇文章主要介绍了C# 7.0之ref locals and returns,即局部变量引用返回,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    没看过原文的请移步: [干货来袭]C#7.0新特性(VS2017可用)

    废话不多说,直接进入正题。首先我们知道ref关键字是将值传递变为引用传递,那么我们先来看看ref locals(ref局部变量)

    列子代码如下:


    static void Main(string[] args)
      {
    
       int x = 3;
       ref int x1 = ref x; //注意这里,我们通过ref关键字 把x赋给了x1
       x1 = 2;
       Console.WriteLine($"改变后的变量 {nameof(x)} 值为: {x}");
       Console.ReadLine();
    
      }

    这段代码最终输出 "2"

    大家注意注释的部分,我们通过ref关键字把x赋给了x1,如果是值类型的传递,那么对x将毫无影响,还是输出3.

    好处不言而喻,在某些特定的场合,我们可以直接用ref来引用传递,减少了值传递所需要开辟的空间.

    接下来我们看看ref returns (ref引用返回)

    这个功能其实是非常有用的,我们可以把值类型当作引用类型来进行return。

    老规矩,我们举个栗子,代码如下:

    很简单的逻辑..获取指定数组的指定下标的值


    static ref int GetByIndex(int[] arr, int ix) => ref arr[ix]; //获取指定数组的指定下标

    我们编写测试代码如下:


       int[] arr = { 1, 2, 3, 4, 5 };
       ref int x = ref GetByIndex(arr, 2); //调用刚才的方法
       x = 99;
       Console.WriteLine($"数组arr[2]的值为: {arr[2]}");
       Console.ReadLine();

    我们通过ref返回引用类型,在重新赋值,arr数组中的值,相应也改变了。

    总结一下:ref关键字很早就存在了,但是他只能用于参数,这次C#7.0让他不仅仅只能作为参数传递,,还能作为本地变量和返回值了

    好了,就这么多。

    以上就是C# 7.0之ref locals and returns(局部变量和引用返回)详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:C#实现在listview中插入图片的示例代码分享 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 指针数组和数组指针的区别是什么• 汇编语言和c语言的区别是什么• c语言文件读写怎么操作• c语言怎么获取数组长度• c语言怎么计算n的阶乘
    1/1

    PHP中文网