out,ref,params:
1.out.如果在一个方法中返回多个相同类型的值,可以返回一个数组;但是如果返回多个不同类型的值,返回数组就不适用了,此时可以利用out参数。
out必须在方法内部赋值。
2.ref.能够将一个变量带入一个方法中进行改变,改变完成后,将改变后的值带出方法。
ref要求必须在方法外赋值,而方法内可以不赋值。
*交换变量值:不借用中间变量
public static void Test(ref int a,ref int b)
{
a=a-b;
b=a+b;
a=b-a;
}
调用:Test(ref n1,ref n2)。*ref所传递给a,b的是n1,n2的地址*
3.params.可变参数。将实参列表中跟可变参数数组类型一致的元素都当做数组的元素处理,params可变参数必须是形参列表中的最后一个元素。
适用于求任意长度数组的最大值等。。。(sum,avg)。
public static void Test(string name, intid, params int[] score)
*
class Program
{
static void Main(string[] args)
{
Sum(1,2,"a");
Console.ReadKey();
}
static void Sum(params object[] numStack)
{
for (int i = 0; i < numStack.Length; i++)
{
Console.WriteLine(numStack[i]);
}
}
}
输出结果:
1
2
a
*