【Unity|C#】基础篇(4)——函数参数类型(值参/ref/out/params)

【学习资料】

  《C#图解教程》(第5章):https://www.cnblogs.com/moonache/p/7687551.html
  电子书下载:https://pan.baidu.com/s/1mhOmBG0

【内容】

    • 函数参数类型
    • 值参数:值类型、引用类型
    • 引用参数(ref)
    • 引用类型 作为 值参数与引用参数(ref) 的区别
    • 输出参数(out)
    • 参数数组(params)

 【笔记】

  • 参数类型

    【Unity|C#】基础篇(4)——函数参数类型(值参/ref/out/params)

  • 值参(形参改变不影响实参)
    • 在栈中 为形参 开辟空间
    • 将 实参的值 传给 形参(值类型传递值,引用类型传递指向堆数据的引用)

      【Unity|C#】基础篇(4)——函数参数类型(值参/ref/out/params)

  • 引用参数(ref)(形参改变,实参也跟随改变)
    • 不会 为形参 在栈上 分配内存
    • 相当于:给实参起个别名,实参和形参是同一个变量

      【Unity|C#】基础篇(4)——函数参数类型(值参/ref/out/params)

  • 引用类型作为 值参 与 ref参数 的区别
    • 作为值参:形参指向新的数据时,实参指向的数据不变

      【Unity|C#】基础篇(4)——函数参数类型(值参/ref/out/params)

    • 作为ref参数:形参指向新的数据时,实参也指向新的数据(因为形参相当于是实参的别名)

      【Unity|C#】基础篇(4)——函数参数类型(值参/ref/out/params)

  • 输出参数(out)(与ref一样,但是在函数结束前必须赋值)

      【Unity|C#】基础篇(4)——函数参数类型(值参/ref/out/params)

  • 参数数组(params):参数个数不固定
    • 在堆中 开辟 参数数组,将 实参 依次 赋值到 参数数组 中
    • 函数执行完后,释放参数数组内存

      【Unity|C#】基础篇(4)——函数参数类型(值参/ref/out/params)

    • void Show(params int[] inVals)
      {
      for (int i = ; i < inVals.Length; ++i)
      Debug.Log(inVals[i]);
      }
      void Start()
      {
      Show();
      Show(, );
      Show(, , );
      }
上一篇:js中 函数参数的 传值/传引用 问题


下一篇:运营商级NAT(Carrier-grade NAT)