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

发布时间 - 2026-01-11 00:07:33    点击率:

没看过原文的请移步: [干货来袭]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  # returns  # c#中的yield return用法详解  # 关于C#中yield return用法的思考  # C#中yield return用法分析  # C#之return语句的具体使用  # 我们可以  # 给了  # 列子  # 值为  # 好了  # 让他  # 还能  # 这么多  # 这段  # 很简单  # 不言而喻  # 谢谢大家  # 多说  # 所需要  # 很早  # 先来  # 没看过  # 直接进入  # 大家多多  # 来袭 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  北京专业网站制作设计师招聘,北京白云观官方网站?  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  Laravel如何自定义分页视图?(Pagination示例)  如何批量查询域名的建站时间记录?  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  网站建设要注意的标准 促进网站用户好感度!  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  C语言设计一个闪闪的圣诞树  网站制作价目表怎么做,珍爱网婚介费用多少?  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  香港服务器网站卡顿?如何解决网络延迟与负载问题?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  如何在橙子建站中快速调整背景颜色?  如何在腾讯云服务器快速搭建个人网站?  如何快速启动建站代理加盟业务?  Java类加载基本过程详细介绍  简单实现Android验证码  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  个人摄影网站制作流程,摄影爱好者都去什么网站?  Laravel如何自定义错误页面(404, 500)?(代码示例)  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  Laravel定时任务怎么设置_Laravel Crontab调度器配置  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  网站制作大概多少钱一个,做一个平台网站大概多少钱?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  Laravel如何实现API速率限制?(Rate Limiting教程)  EditPlus中的正则表达式 实战(2)  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  Internet Explorer官网直接进入 IE浏览器在线体验版网址  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  如何在景安云服务器上绑定域名并配置虚拟主机?  🚀拖拽式CMS建站能否实现高效与个性化并存?  如何自定义建站之星网站的导航菜单样式?  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  如何在IIS服务器上快速部署高效网站?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Laravel如何使用查询构建器?(Query Builder高级用法)  什么是javascript作用域_全局和局部作用域有什么区别?  Java垃圾回收器的方法和原理总结  网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  深圳网站制作的公司有哪些,dido官方网站?  Laravel中的withCount方法怎么高效统计关联模型数量  javascript读取文本节点方法小结  如何快速登录WAP自助建站平台?