out 和ref 參數 經常用來通過方法傳遞參數來獲取值,當您的方法不只有一個返回值的時候,這兩個參數就發揮作用了。ref是傳遞參數的地址,out是返回值,兩者有一定的相同之處,不過也有不同點。 在這篇文章裡,我將解釋如何在c#應用中使用這兩個參數。
1、out 參數
out 方法參數關鍵字使方法引用傳遞到方法的同一個變量。當控制傳遞回調用方法時,在方法中對參數所做的任何更改都將反映在該變量中。
public class mathClass
{
public static int TestOut(out int iVal1, out int iVal2)
{
iVal1 = 10;
iVal2 = 20;
return 0;
}
public static void Main()
{
int i, j; // variable need not be initialized
Console.WriteLine(TestOut(out i, out j));
Console.WriteLine(i);
Console.WriteLine(j);
}
}
2、ref 參數
ref 方法參數關鍵字使方法引用傳遞到方法的同一個變量。當控制傳遞回調用方法時,在方法中對參數所做的任何更改都將反映在該變量中。
static void Main(string[] args)
{
// Ref sample
int refi; // variable need not be initialized
refi = 3;
RefTest(ref refi);
Console.WriteLine(refi);
Console.ReadKey();
}
public static void RefTest(ref int iVal1)
{
iVal1 += 2;
}
3、區別
使用ref前必須對變量賦值,out不用。
out的函數會清空變量,即使變量已經賦值也不行,退出函數時所有out引用的變量都要賦值,ref引用的可以修改,也可以不修改。