out 参数与 ref 参数的比较

article/2025/6/18 0:11:59

请添加图片描述

🐾 个人主页 🐾

阿松爱睡觉,横竖醒不来
🏅你可以不屠龙,但不能不磨剑🗡

目录

  • 一、前言
  • 二、out 参数
  • 二、ref 参数
  • 三、总结

一、前言

在日常的开发中,编写的函数方法经常需要传参,除了输入参数还有输出参数,使用的比较多的输出参数一般是out类型的输出参数,但是除此之外还有一个输出参数,只是使用的频率非常少,为了能够更加清晰明了地在开发中区分和使用这两种参数,这里我们对两个不同的输出参数的类型做一个比较,感受以下两者的区别。

请添加图片描述

首先需要了解一下,out 参数和 ref 参数都是用于在方法中传递参数的方式,它们允许函数方法对传入的参数进行修改并返回修改后的结果。

二、out 参数

定义: out 参数用于从方法返回多个值。调用方法时,out 参数不需要在传递之前初始化,但在方法内部必须被赋值

  • 初始化要求: 在方法调用之前,out 参数不需要被初始化。
  • 赋值要求: 在方法内部,必须给 out 参数赋值。

在开发中,如果要创建一个方法返回多个输出值的时候,可以使用 out 参数,看下示例:

public bool TryParseInt(string str, out int number)
{return int.TryParse(str, out number);
}public void Main()
{string input = "123";if (TryParseInt(input, out int result)){Console.WriteLine($"Parsed successfully: {result}");}else{Console.WriteLine("Parsing failed.");}
}

二、ref 参数

定义: ref 参数用于在方法中传递参数的引用(也就是地址),这意味着方法可以修改原始变量的值。调用方法时,ref 参数必须在传递之前初始化

  • 初始化要求: 在方法调用之前,ref 参数必须被初始化。
  • 赋值要求: 在方法内部,可以对 ref 参数进行赋值,但不是必须的;如果不赋值,调用方的值不会改变。

在开发中如果希望创建的方法可以修改传入的参数值,并且在方法外部能够看到这些修改时,使用 ref 参数。可以看下以下示例:

public void Increment(ref int number)
{number++;
}public void Main()
{int num = 5;Increment(ref num);Console.WriteLine($"Incremented value: {num}"); // 输出: Incremented num: 6
}

三、总结

特性out 参数ref 参数
初始化要求不需要在调用之前初始化必须在调用之前初始化
赋值要求必须在方法内部赋值可选择性赋值
使用目的返回多个值修改现有值

日常开发使用的话,如果需要从方法返回多个值,并且不需要在调用之前对这些值进行初始化时,使用 out 参数;如果需要在方法中修改现有变量的值,并且希望在方法外部看到这些修改时,使用 ref 参数。


下期见,拜拜!

请添加图片描述


http://www.hkcw.cn/article/kjTgwVxUVS.shtml

相关文章

四川九寨沟发生多车相撞事故 大巴车乘客紧急撤离

6月1日18时许,四川阿坝九寨沟544国道发生多车相撞事故,一辆“方奥旅游”大巴车被卷入其中,前挡风玻璃右侧严重损毁,现场情况危急。从现场视频和照片可见,大巴车后方不断有白烟冒出,车上多名乘客紧急撤离到安全地带。目击者李先生表示,事故的起因是一辆黑色轿车逆向超车,…

彭于晏方发声明 否认与蔡依林恋情 舆论狂欢背后的真相

2025年5月底,台媒一则关于蔡依林和彭于晏复合六年的爆料引发广泛关注。尽管两人从未正面回应,但“同款黄玫瑰”、“神秘旅行轨迹”以及“父亲间接实锤”等细节,让这段跨越19年的恋情再度成为焦点。尽管“复合说”甚嚣尘上,近三年两人始终未公开同框,台媒也坦言未能拍到直接…

今晚油价或将上涨 每升上调0.05元

国家发展改革委发布消息,受国际油价上涨的影响,国内汽柴油价格将在6月3日24时上调。从6月3日24时起,国内汽柴油每吨分别上调65元和60元。全国平均来看,92号汽油、95号汽油和0号柴油每升均上调0.05元。这意味着加满一箱50L的92号汽油将多花2.5元。责任编辑:0764

苏超都不骂裁判了 纯粹足球再现

苏超都不骂裁判了 纯粹足球再现!江苏城市足球联赛(苏超)开赛三轮以来,出现了一个耐人寻味的现象:裁判几乎从公众视野中消失了。与中超联赛每轮必有的裁判争议形成鲜明对比,苏超赛场既没有现场球迷的骂声,赛后也几乎没有对判罚的讨论。博主“小黑夜之晴”指出,这种现象或…

端午假期近500万游客游长沙 文旅活动精彩纷呈

端午假期,长沙文旅围绕“来屈贾之乡 品文化盛宴”主题,策划了包括非遗体验、文博展览、文艺演出、亲子活动、国潮游玩等5大板块52项活动,打造文旅新场景,激发出行新体验。据统计,端午假期3天长沙市共接待游客498.78万人次,同比增长27.41%;游客总花费29.95亿元,按可比口…

为何说乌偷袭俄军轰炸机可载入史册 精心策划突袭成功

乌克兰在与俄罗斯举行第二轮谈判前夕,发动了“蛛网”行动,袭击了俄罗斯多地。据报道,行动中的无人机是通过货柜车偷运进入俄方领土的。乌克兰总统泽连斯基表示,这次行动准备超过一年半,经过精心策划。他赞扬此次行动堪称精彩,并称乌军此次行动无疑将载入史册。乌克兰安全…

多家医院猫抓狗咬接诊量激增 宠物躁动需警惕

6月1日,贵州毕节一名7岁男孩被三只恶犬撕咬的事件引起了广泛关注。随后,多家医院报告称近期猫狗咬伤和抓伤的接诊案例显著增加,部分医院的日接诊量甚至超过百例,有的医院在五月份接诊病例超过2000例。天气变热时,宠物进入发情期,身上的寄生虫也变得活跃,这些因素导致宠物…

何秋亊60秒广告报价50万 演唱会造型争议致掉粉超17.5万

6月2日,何秋亊因演唱会造型引发抄袭争议。随后,何秋亊工作室发文向汪苏泷及其团队道歉,解释称因时间紧急,演唱会协同了多个团队合作,完全按照第三方提供的方案进行,并未进行详细调查。工作室表示后续将保留追究第三方法律责任的权利。根据第三方数据,何秋亊的视频平台账…

苏超射手榜:宿迁队高驰5球领跑 延续火热状态

江苏省城市足球联赛结束了三轮比赛。在第三轮比赛中,宿迁队以2-0战胜镇江队,扬州队以1-0击败常州队,徐州队以2-1战胜连云港队,盐城队以1-0战胜淮安队,南通队以4-0大胜泰州队,南京队则以1-0战胜无锡队。积分榜上,南通队三战全胜积9分领跑,盐城队以2胜1平积7分紧随其后,…

学生登录界面开发实战:从基础到安全优化

本文还有配套的精品资源,点击获取 简介:本文将详细解读开发一个学生登录界面所需的关键技术点。这包括使用HTML/CSS创建结构和样式,实现表单提交功能,以及利用JavaScript进行前端验证。同时,强调了后端处理的重要性…

Windows重新安装安全中心解决白屏问题

重新安装Windows安全中心(Windows Security Center)涉及多个步骤,包括重置Windows安全功能和重新安装Windows安全应用。以下是详细的步骤: 1. 通过PowerShell重置Windows安全中心 打开PowerShell: 在开始菜单中搜索“PowerShell”…

安全解码防御越狱攻击

前言 之前在社区里已经发了一些关于越狱大模型的工作了,而我们作为安全从业人员,最终的目的是做好防御。未知攻,焉知防,在了解了常见的攻击方法之后我们来看看防御方法。 在这篇文章中,我们现在来分析并复现发表在202…

空安全编程的典范:Java 8中的安全应用指南

文章目录 一、Base64 编码解码1.1 基本的编码和解码1.2 URL 和文件名安全的编码解码器1.3 MIME Base64编码和解码 二、Optional类三、Nashorn JavaScript 一、Base64 编码解码 1.1 基本的编码和解码 Base64 编码: 使用 Base64.getEncoder().encodeToString(origin…

信息安全意识之安全组织架构图

一、信息安全技术概论1.网络在当今社会中的重要作用2.信息安全的内涵 网络出现前:主要面向数据的安全,对信息的机密性、完整性和可用性的保护,即CIA三元组 网络出现后,还涵盖了面向用户的安全,即鉴别,授权&…

CVPR2025 | 对抗样本智能安全方向论文汇总 | 持续更新中~

汇总结果来源:CVPR 2025 Accepted Papers 若文中出现的 论文链接 和 GitHub链接 点不开,则说明还未公布,在公布后笔者会及时添加. 若笔者未及时添加,欢迎读者告知. 文章根据题目关键词搜索,可能会有遗漏. 若笔者出现…

MySQL 表结构变更优化:如何安全添加字段而不阻塞业务?

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] 📱个人微信&a…

手把手教你安全删除Anaconda虚拟环境(避坑指南)

文章目录 一、删除前必看清单(超级重要)二、三种删除方法对比(建议收藏)方法1:官方推荐命令(最安全)方法2:暴力删除大法(快速但需谨慎)方法3:核弹…

Nacos 日志与 Raft 数据清理指南:如何安全释放磁盘空间

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] 📱个人微信&a…

从概念表达到安全验证:智能驾驶功能迎来系统性规范

随着辅助驾驶事故频发,监管机制正在迅速补位。面对能力表达、使用责任、功能部署等方面的新要求,行业开始重估技术边界与验证能力,数字样机正成为企业合规落地的重要抓手。 2025年以来,围绕智能驾驶功能的争议不断升级。多起因辅…

OpenHarmony子系统开发 - 安全(八)

OpenHarmony SELinux开发指导(一) 一、OpenHarmony SELinux概述 简介 OpenHarmony结合系统架构特点,基于安全增强式Linux(Security-Enhanced Linux ,以下简称SELinux)对OpenHarmony操作系统内文件、参数…