C#简明教程(三)
声明:我在翻译的时候,加了一些自己的看法以及其它的一些比较,希望能让大家看的更明白,理解更透彻。
有什么建议请mail:efoxxx@263.net
对了,那位在专家门诊上贴了关于“找到C#编译器”的兄弟,我怎么还没有收到你答应的C#编译器,急用,劳驾这位兄弟百忙之中给我发一个过来,谢了!
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);
}
}
}