聲明:我在翻譯的時候,加了一些自己的看法以及其它的一些比較,希望能讓大家看的更明白,理解更透徹。
有什麼建議請mail:
[email protected]
C#中的out和ref參數
out和ref參數是用於讓傳遞到方法的參數中帶回返回值。
在你需要讓方法返回多於一個返回值的情況下,這倆個參數很有用。
◆out參數
out參數可以用於讓同一個變量參數既傳參又帶回返回值。(有點像C中的指針喲)
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; //變量i,j不需要初始化
Console.WriteLine(TestOut(out i, out j));
Console.WriteLine(i);
Console.WriteLine(j);
}
}
efoxxx補充:
這裡我想補充一個譚浩強老師的一個經典的C程序例子:swap
public class swapClass
{
public static int SwapOut(out int iVal1, out int iVal2)
{
int temp;
temp = iVal1;
iVal1 = iVal2;
iVal2 = temp;
return 0;
}
public static void Main()
{
int i, j; // 變量i,j不需要初始化
SwapOut(out i, out j);
Console.WriteLine(i);
Console.WriteLine(j);
}
}
◆ref參數(引用)
與Java和C++的概念是一樣的。
你也可以用ref來得到多於一個的返回參數。
namespace TestRefP
{
using System;
public class myClass
{
public static void RefTest(ref int iVal1 )
{
iVal1 += 2;
}
public static void Main()
{
int i; // variable need not be initialized
i = 3;
RefTest(ref i );
Console.WriteLine(i);
}
}
}