方法的重载:
方法名称相同,但是方法的参数个数,或者参数类型不相同.参数个数不同或者参数类型不同称为参数列表不同.这里没有提到返回值,说明参数的重载只和参数列表有关,与函数的返回值无关
params:可变参数数组
static void Main(string[] args)
{
int[] nums={1,2,3,4,5,6};
GetScore("张三", 78, 90, 30);//第一种调用方式
GetScore("张三", nums);//第二种调用方式
Console.ReadKey();
}
/// <summary>
/// params必须在形参这种使用,不能再调用函数的时候使用
/// params必须放在参数列表的在最后一位
/// </summary>
/// <param name="name"></param>
/// <param name="score"></param>
private static void GetScore(string name, params int[] score)
{
int sum = 0;
for (int i = 0; i < score.Length; i++)
{
sum += score[i];
}
Console.WriteLine("{0}的总成绩是{1}", name, sum);
}
递归:
在方法的内部自己调用自己
public static void TellStory(int i)
{
Console.WriteLine("从前有座山");
Console.WriteLine("山里有座庙");
Console.WriteLine("庙里有个老和尚");
Console.WriteLine("老和尚在给小和尚讲故事");
Console.WriteLine("讲的什么呢");
Console.WriteLine("讲的是");
i++;
if (i > 5)
{
return;//调试的时候可以发现,会多次调到下面的TellStory,然后到结尾
//因为这里会多次进入方法TellStory(),跳出的时候回一层层的跳出来
}
else
{
TellStory(i);
}
}