kingBook

导航

统计

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赋值
    }
}
复制代码

 

posted on   kingBook  阅读(176)  评论(0编辑  收藏  举报

编辑推荐:
· 从 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的设计差异
点击右上角即可分享
微信分享提示