值参数
声明时不加修饰的参数
private int Add(int x,int y){
x = x+y;
return x;
}
static void Main(string[] args){
Program pro = new Program();
int x = 30;
int y = 40;
Console.WriteLine(pro.Add(x,y));
Console.ReadLine();
}
ref参数
使形参按引用传递,在方法中对形参中所做的任何更改都将反映在实参中。
private int Add(ref int x,int y){
x = x+y;
return x;
}
static void Main(string[] args){
Program pro = new Program();
int x = 30;
int y = 40;
Console.WriteLine(pro.Add(ref x,y));
Console.Writeline(x);
Console.ReadLine();
}
}
out参数
out关键字用来定义输出参数,他会导致参数通过引用传递。
ref要求变量在传递之前进行赋值,out关键字定义的参数,不用进行赋值也可使用。
private int Add(int x,int y,out int z){
z = x+y;
return z;
}
static void Main(string[] args){
Program pro = new Program();
int x = 30;
int y = 40;
int z;
Console.WriteLine(pro.Add(x,y,out z));
Console.WriteLine(z);
Console.ReadLine();}
params参数
params参数是一个一维数组
private int Add(params int[] x){
int result = 0;
for(int i = 0; i < x.length;i++){
result += x[i];
}
return result;
}
static void Main(string[] args){
Program pro = new Program();
int[] x = {20,30,40,50};
console.WriteLine(pro.Add(x));
Console.ReadLine();
}