public static void Main(string[] args)
{
int val1 = 0; //一定要初始化
int val2; //optional,可選
Keywords1(ref val1);
Console.WriteLine(val1); // val1=0
Keywords2(out val2);
Console.WriteLine(val2); // val2=9
}
static void Keywords1(ref int value) //called method
{
Console.WriteLine("i am Keyword1");
}
static void Keywords2(out int value) //called method
{
value = 9; //must be defined
}
output
i am Keyword1
0
9
Press any key to continue...

image.png
out作為方法的參數(shù)必須初始化,調(diào)用的時候可不賦值。
ref在傳入方法時必須初始化。
也就是兩者在賦值的時間不同out在Parameters時期賦值,ref在Argument時期賦值。