zoukankan      html  css  js  c++  java
  • 【总结】浅谈ref与out

    ref——仅仅是一个地址

    (1)当一个方法或函数在使用ref作为参数时,在方法中或函数中对ref参数所做的更改都将反映在该变量中。

    (2)如果要使用ref参数,则必须将参数作为ref显示传递到方法中。ref参数的值可以被传递到ref参数。

    (3)ref参数传递的变量必须初始化,因为ref参数在进入方法后还是它自己,它这个地址指向的还是原来的值,也因为这个原因,ref参数可以在使用它的方法的内部不操作。这与out不同,out的参数在传递前不需要显示初始化。

    (4)如果两种方法的声明仅在于它们对于ref的使用方面不同,则将出现重载。但是,无法定义尽在refout方面不同的重载。

    1 public string paramsRef(ref int i)
    2 {
    3     i++;
    4     return i.ToString();
    5 }

    以下是调用:

    int i = 120;
    new ParamTest().paramsRef(ref i);
    Console.WriteLine("i=" + i);//输出121

     out ——引用传递

    (1)当一个方法或函数在使用out作为参数时,在方法中或函数中对out参数所做的更改都将反映在该变量中。

    (2)当希望方法或函数返回多个值时,out参数十分有用,一个方法或函数可以有一个或多个out参数。

    (3)使用out参数时,可以不必为参数初始化值,因为out参数进入方法体后会清空自己。

    (4)使用out参数时,必须显示指定out关键字。

    (5)方法签名中,同一类型参数,如果一个含有out参数,另一个不包含out参数,则发生重载。

    示例:

    1 public int Method(int i,out string str)
    2 {
    3     i+=10;
    4     str="我是out参数!";
    5     return i;
    6 }

    调用:

    1 public static void Main(string[] args)
    2 {
    3     int i=10;
    4     string outStr;//不必初始化
    5     i=Method(i,out outStr);
    6     Console.WriteLine(i.ToString());
    7     Console.WriteLine(outStr);//输出out参数
    8 }

     作者:悠扬的牧笛

     博客地址:http://www.cnblogs.com/xhb-bky-blog/p/3490036.html

     声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

  • 相关阅读:
    五。java运算符
    二。java的第一个程序
    四。java常量的学习以及数据类型转换
    修改Launcher源码之快速启动
    Eclipse导入Android项目的方法
    js日期时间控件脚本
    Android中的soundpool小结
    Android GPS (当前位置 & GPS信息更新)
    android利用WebView实现浏览器的封装
    Android选项卡置底的方法
  • 原文地址:https://www.cnblogs.com/xhb-bky-blog/p/3490036.html
Copyright © 2011-2022 走看看