ref与out
注意点:
- ref和out都是按地址传递,使用后都将改变原来参数的数值
- 方法定义和调用方法都必须显式使用 ref/out 关键字
ref:
- 作为ref参数传递的变量在方法调用中传递之前必须初始化
out:
- 作为
out
参数传递的变量在方法调用中传递之前不必初始化 - 被调用的方法需要在返回之前赋一个值
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { void Start () { int a=1;//必须初始化 int b=3;//必须初始化 handlerRef(ref a,ref b); Debug.LogFormat("a:{0} b:{1}",a,b);//output: a:4 b:2 int c;//不必初始化 int d;//不必初始化 handlerOut(out c,out d); Debug.LogFormat("c:{0} d:{1}",c,d);//output: c:5 d:6 } private void handlerRef(ref int a, ref int b){ a=a+b; b=2; } private void handlerOut(out int c,out int d){ c=5;//必须对c赋值 d=c+1;//必须对d赋值 } }
分类:
C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异