看視訊的時候發現關于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可以把值傳到方法裡又可以把值傳到方法外;