当前位置: 首页 > news >正文

ref、out 参数

## 一、共同特征
第一,ref与out都是地址传递,不再拷贝数据副本,方法内部修改参数,外部原始变量的值同步跟着变化。
第二,方法定义的形参、调用时的实参,两边必须同时写同一个关键字,要么全ref,要么全out,不能一个ref一个out混用。

## 二、ref参数知识点+示例代码
1. 语法规则:调用方法前,实参变量**必须提前初始化赋值**,未赋值变量不能作为ref实参传入。
2. 方法内部:ref参数既能读取原本传入的数值,也可以修改数值,只读取不修改代码也合法。
3. 适用场景:依托原有数据做修改,修改结果带回外层变量。

```csharp
using System;
class TestParam
{
//形参加ref
static void ChangeNum(ref int num)
{
num += 20;
}
static void Main()
{
int a = 10;//调用前必须赋值
ChangeNum(ref a);//实参同步写ref
Console.WriteLine(a);//输出30
Console.ReadKey();
}
}
```

## 三、out参数知识点+示例代码
1. 语法规则:调用方法前,实参可以不提前赋值,只声明变量即可。
2. 强制要求:在方法结束之前,代码必须给所有out形参完成赋值,缺少赋值直接编译报错,不能只读取不赋值。
3. 适用场景:一个方法需要返回多个运算结果,弥补return只能返回一个数据的短板。

```csharp
using System;
class TestParam
{
static void GetCalc(int x, int y, out int sum, out int sub)
{
sum = x + y;//out必须在方法内赋值
sub = x - y;
}
static void Main()
{
int s, d;//不用提前赋值
GetCalc(20, 5, out s, out d);
Console.WriteLine($"和:{s},差:{d}");
Console.ReadKey();
}
}
```

## 四、背诵口诀
ref带初始值进门,可读可改;out空手进门,方法内部必须赋值。

## 五、高频易错考点
1. out参数禁止只读取不赋值,编译报错;ref参数只读取不修改,语法正常。
2. ref和out修饰符不能交叉使用,形参ref、调用传out是错误写法。
3. 普通值传递复制新副本,方法修改副本不影响外面变量;ref/out共用同一块内存地址,内外数据联动变化。

## 补充:错误示例(加深理解)
### ref错误:变量未初始化
```csharp
int num;
ChangeNum(ref num);//报错,ref实参必须预先赋值
```
### out错误:方法内未给out变量赋值
```csharp
static void TestOut(out int n)
{
//没有给n赋值,编译报错
}
```

http://www.jsqmd.com/news/964263/

相关文章:

  • 拆解家用甲醛检测仪:从电化学传感器原理到成本控制设计
  • CSDN原创检测算法逆向分析(2024最新版V3.7.2内核曝光):AI生成内容的“安全阈值”首次公开
  • 从知识碎片到思维网络:如何用Obsidian模板构建你的第二大脑
  • 定义下一代电池研发范式:PLM融合计算、AI与高通量实验,加速创新循环
  • ops-cv 计算机视觉算子深度解读:昇腾 NPU 上的图像处理加速实战
  • 15分钟快速部署:wvp-GB28181-pro国标视频监控平台终极实战指南
  • Vue京东风抽奖大转盘组件,含完整样式、逻辑与静态资源,直接引入项目就能用
  • 在非RHEL/CentOS系统上,用Docker搞定Discovery Studio 2019的安装(Ubuntu/Arch实测)
  • SysDVR技术深度解析:Switch游戏实时串流架构设计与应用实战
  • 纯亚克力浴缸专业公司
  • 现在算法已经做到1秒识别出收藏按钮-----超出预期
  • Frigate如何重新定义智能安防:从传统监控到AI赋能的革命性转变
  • 终极游戏内容创作指南:如何使用Harepacker-resurrected打造你的MapleStory游戏世界
  • RAG召回率从60%到95%:2026年实战优化指南
  • VidDown 视频解析下载:免安装、无水印、免费使用
  • CANopen协议实战指南:从总线原理到工程调试全解析
  • 目前已经做到精准识别抖音主要控件---------无视干扰
  • 2026甄选:南京品牌门窗公司综合实力评估 - 品牌企业推荐师(官方)
  • 2026 年 PP 酸洗槽定做厂家综合实力排行|张氏橡塑稳居榜首(综合评分 4.8 分) - 资讯速览
  • 【2025版】超详细FLAC3D 7.0安装保姆级教程,永久免费使用,岩土工程软件配置和使用指南,看完这一篇就够了
  • 2026年压缩机十大品牌推荐榜:制冷压缩机/空调压缩机/冷库压缩机/热泵压缩机/商用压缩机与变频压缩机实力厂家精选 - 品牌企业推荐师(官方)
  • 标准化智能化双轮驱动:智圣新创第二课堂成绩单数字化建设可复制实践
  • GEC6818开发板上纯C实现的五子棋人机对战程序(含图形界面与完整编译配置)
  • MAA助手完整指南:明日方舟终极自动化管理工具
  • CSDN AI看板关键词排名查询失效?3步绕过限制获取真实百度/搜狗/360三端排名数据,限期内可复现
  • 智能时代工程师如何应对技术迭代与信息茧房挑战
  • 从‘驻波’到‘行波’:一个故事讲明白天线匹配为啥要搞到50欧姆
  • Allegro高速PCB设计:Xnet创建与差分对等长约束实战指南
  • 华为AI数字资深顾问颜少林|航天工业AI大模型—赋能航空工业研发全流程数字化工作坊
  • 仪器厂选型干货|实测多款串口屏,这家产品凭品质和交期脱颖而出