愛悠閑 > 【C#】——out和ref區別

【C#】——out和ref區別

分類: 軟工之C/S  |  標簽: c#,視頻,outref  |  作者: sms15732621690 相關  |  發布日期 : 2015-12-21  |  熱度 : 1005°

   看視頻的時候發現關于out和ref之間感覺有點兒亂,兩者都是用來傳值的,使用后可以改變原來參數的值,但是傳值的過程感覺不是很明白,現在整理一下:

   

  代碼①: 

static void Main(string[] args)
        {
            int number1 ;//可以不賦值
            int number2 = 90;
            int sum = AddNumber (out number1,  number2);

            Console.WriteLine(number1 );
            Console.WriteLine(number2);

            Console.WriteLine(sum);
            Console.ReadKey();
        }
        public static int AddNumber(out int num1, int num2)
        {
            num1 = 100;//必須賦值
            num2 = 200;
            return num1 +num2 ;
        }
    }
}

   運行結果:

  


  代碼②:

 static void Main(string[] args)
        {
            int number1 = 10;
            int number2 = 20;

            int sum = show(ref number1 ,ref number2 );
            Console.WriteLine("{0},{1},{2}", number1, number2, sum);

            Console.ReadKey();
            
        }

        public static int show(ref int num1, ref int num2)
        {
            num1 = 100;
            num2 = 200;
            return num1 + num2;
        }
    }
}


  運行結果:

  

【總結】

   方法的參數用out修飾了,那么這個參數必須在方法里進行賦值,在方法外面可以不給這個參數賦值;

   如果使用 ref 參數,則方法定義和調用方法都必須顯式使用 ref 關鍵字;

   通過對比可以發現ref用的時候必須要給這個變量賦初值,這是和out的區別,out可以把方法里的值傳出去,而ref可以把值傳到方法里又可以把值傳到方法外;

  



快乐彩中奖说明