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自助建站平台?

