zoukankan      html  css  js  c++  java
  • c# ref与out的区别

    相同点:都是输出参数

    不同点:

    ref:

    1、必须初始化,即:必须赋初始值;

    2.有进有出;

    3、用在需要被调用的方法修改调用者的引用的时候。

    4、是传递参数的地址

    out:

    1.不需要初始化,即:不需要赋初始值;

    2、只出不进;

    3、用在需要retrun多个返回值的地方;

    4、返回值;

    通过代码更直观的看出它们的区别:

    class Program
        {
            static void Main(string[] args)
            {
              //num1,num2,必须赋值
                int num1 = 10;
                int num2 = 5;
                Exchage(ref num1,ref num2);//调用方法,必须在变量前,必须加ref关键字
             
            }
      /// <summary>
            /// 使用ref方法,参数必须加ref关键字
            /// </summary>
            /// <param name="num1"></param>
            /// <param name="num2"></param>
            private static void Exchage(ref int num1,ref int num2)
            {
                //交换前
                    Console.WriteLine("num1的值:{0};num2的值:{1}", num1, num2);
                    int temp = num1;
                    num1 = num2;
                    num2 = temp;
                    //交换后
                    Console.WriteLine("num1的值:{0};num2的值:{1}", num1, num2);
                    Console.ReadKey();
            }
    class Program
        {
            static void Main(string[] args)
            {
            int sum;//不需赋值,即使赋值,也会被覆盖
                NumSum(10,5,out sum);
                Console.Write(sum);
                Console.ReadKey();
            }
       /// <summary>
            /// 求和
            /// </summary>
            /// <param name="num1"></param>
            /// <param name="num2"></param>
            /// <param name="sum"></param>
            private static void NumSum(int num1,int num2,out int sum)
            {
                sum = num1 + num2;
     
            }
    }
  • 相关阅读:
    poj2346
    poj3748
    poj1205
    PostThreadMessage 使用注意问题
    CBitmap Detach DeleteObject关系
    音视频编码技术与格式大全
    利用 DirectShow 开发自己的 Filter
    VC+DirectShow对视频进行图片处理VC教程电脑教程之家.htm
    Directx报错01
    深圳超多维光电子有限公司
  • 原文地址:https://www.cnblogs.com/liangss/p/5143434.html
Copyright © 2011-2022 走看看