程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> c# 參數中ref與out的區別

c# 參數中ref與out的區別

編輯:C#基礎知識
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;

        }
}

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved