zoukankan      html  css  js  c++  java
  • ref和out

    ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:

     
    1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。

    2、使用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。

    3、out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。
     
    4、ref不需要关心函数体中发生了什么,函数体对ref透明。而out却不是,在函数体中不能将没有赋值的out参数赋值给其他成员,在函数退出前必须对out参数赋值。
     
    例子:
    using UnityEngine;
    using System.Collections;
    public class TestRefAndOut : MonoBehaviour {
     // Use this for initialization
     void Start ()
     {
            int m = 0;
            Debug.Log("refFun test c="+refFun(1,ref m));   //1
            Debug.Log("refFun test m=" + m);  //123
            int n;
            Debug.Log("outFun test c=" + outFun(1, out n));  //123
            Debug.Log("outFun test n=" + n); //123
     }
     
        private int refFun(int i,ref int j)
        {
            int k = j;
            j = 123;
            return i + k;
        }
        private int outFun(int i, out int j)
        {
            //int k = j;  //直接报错的
            j = 123;
            return i + j;
        }
    }
    

      

  • 相关阅读:
    【iCore、iCore2 双核心板】EPCS 实验(SPI Flash)(基于Verilog语言)
    【iCore2双核心板】SRAM 读写实验(基于Verilog语言)
    大便难案
    乌梅丸案二则
    奔豚
    中医对甲流的认识
    大青龙汤临床应用
    中风之补阳还五汤
    时方的魅力
    艾灸急治
  • 原文地址:https://www.cnblogs.com/willDeng/p/4900999.html
Copyright © 2011-2022 走看看