每个参数必须要有一个类型和一个名称。参数用“,”号隔开。调用时类型,个数,顺序必须要相同
简单示例:
static void alike(string mystring,double mydouble )
{
......
}
正确的调用:
alike("Hello",2.9)
错误的调用:
alike(2.9,"Hello") alike(2.9)
注意必须要类型,个数,顺序相同
参数数组:
参数数组就是用个数不定的参数来调用函数。一个函数只能指定一个参数数组,用params关键字来定义,而且定义参数时,参数数组必须定义在最后一个。
简单的参数数组示例:
static void alike(string mystring,double mydouble ,params int[] arg)
{
......
}
参数数组的使用示例:
class Program
{
static int sumvals(params int[] numbers)
{
int sum = 0;
foreach(int number in numbers )
{
sum += number;
}
return sum;
}
static void Main(string[] args)
{
int sum = sumvals(1,5,6,8,6);//此时个数不固定,可以用多个数来调用
Console.WriteLine("总和 = {0}",sum);
}
}
引用参数和值参数
引用参数:函数中对变量的值的改变不改变调用函数中的变量值。
值参数:改变了调用函数中的变量值。
这个时候用到ref关键字(ref关键字必须要使用变量,并且要初始化。)
简单示例:
static void alite(int val)
{
val *= 2;
Console.WriteLine("val double = {0}",val);
}
调用的时候
int Number = 5
Console.WriteLine("Number = {0}",Number)//输出Number = 5
alite(Number) //输出Number = 10
Console.WriteLine("Number = {0}",Number)//输出Number = 5
这个时候Number的值没有改变。如果用ref关键字:
static void alite(ref int val)
{
val *= 2;
Console.WriteLine("val double = {0}",val);
}
int Number = 5
Console.WriteLine("Number = {0}",Number)//输出Number = 5
alite(Number) //输出Number = 10
Console.WriteLine("Number = {0}",Number)//输出Number = 10
这个时候Number的值发生了改变
注意:ref关键字必须要使用变量:const int Number = 5 这样定义是错误的。必须要初始化:int Number这样也是错误的。