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;
        }
    }
    

      

  • 相关阅读:
    cocos2dx动画常见特效(转)
    cocos2dx常见Action(转)
    cocos2dx常见场景切换动画(转)
    android AlertDialog.Builder(Context context)换行
    使用NPOI操作Excel文件及其日期处理
    java jar文件打包成exe(Launch4j使用说明)
    知识日志2
    知识日记1
    框架体系对小软件作坊的 重要性 第二章
    框架体系对小软件作坊的 重要性 第一章
  • 原文地址:https://www.cnblogs.com/willDeng/p/4900999.html
Copyright © 2011-2022 走看看