zoukankan      html  css  js  c++  java
  • 【原创】C#中ref和out的异同

      C#中既可以通过值传递参数,也可以通过引用传递参数。通过引用传递参数,允许方法内成员改变参数的值,并保持更改。若要通过引用传递参数,可以使用ref和out关键字。ref和out的功能相当于C中的指针。

      ref和out都可以使参数按引用方式传递,但两者有一定的区别。

      1.ref传递参数时必须先初始化,而out传递参数时不需要事先初始化,但必须在方法中初始化。

      2.out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。

      3.使用ref和out,在使用和定义方法时,参数之前都必须使用ref或out参数,对应起来。

    具体看下面示例:

    static void Main(string[] args)
            {
                
    int i = 3;
                TestRef(
    ref i);
                Console.WriteLine(
    "执行ref后的值" + i.ToString());

                
    int j;
                TestOut(
    out j);
                Console.WriteLine(
    "执行out后的值" + j.ToString());
                Console.Read();
            }

            
    static void TestRef(ref int i)
            {
                Console.WriteLine(
    "参数自增前的值" + i.ToString());
                i
    ++;
                Console.WriteLine(
    "参数自增后的值" + i.ToString());
            }

            
    static void TestOut(out int j)
            {
                j 
    = 1;
                Console.WriteLine(
    "参数自增前的值" + j.ToString());
                j
    ++;
                Console.WriteLine(
    "参数自增后的值" + j.ToString());
            }

    执行结果:

    从上面结果我们可以看出,ref和out都是按地址传递的方式。

  • 相关阅读:
    Oracle数据库五种约束
    Oracle中sql的基本使用
    暮光之城》剧本
    英语电影剧本大全(中英对照)
    加勒比海盗1英文剧本
    公主日记英文剧本
    教父2-英文版
    <老友记>学习笔记
    霍夫变换Hough
    景深(Depth of Field)
  • 原文地址:https://www.cnblogs.com/zwffff/p/1432434.html
Copyright © 2011-2022 走看看