1.参数数组
不同于数组参数,调用参数数组的时候,我们可以传递过来任意多个参数,编译器自动帮我们拼成一个数组。
static void Main(string[] args)
{
int sum = Plus(10, 20, 30);
Console.WriteLine("sum:" + sum);
Console.ReadKey();
}
static int Plus(params int[] array)
{
int sum = 0;
for(int i = 0; i < array.Length; i++)
{
sum += array[i];
}
return sum;
}
2.结构函数
在结构体重定义一个函数,可以在将结构体实例化后调用这个函数。
struct CustomerName
{
public string fristName;
public string lastName;
public string zupinName()
{
return fristName + " " + lastName;
}
}
static void Main(string[] args)
{
CustomerName myName;
myName.fristName = "y";
myName.lastName = "rp";
Console.WriteLine(myName.zupinName());
Console.ReadKey();
}
3.函数的重载
编译器会根据你传过来的实参的类型,调用哪一个函数
static int MaxValue(params int[] array)
{
int maxValue = array[0];
for(int i = 0 ; i < array.Length; i++)
{
if (array[i] > maxValue)
{
maxValue = array[i];
}
}
return maxValue;
}
static double MaxValue(params double[] array)
{
double maxValue = array[0];
for (int i = 0; i < array.Length; i++)
{
if (array[i] > maxValue)
{
maxValue = array[i];
}
}
return maxValue;
}
static void Main(string[] args)
{
Console.WriteLine( MaxValue(10, 5, 22));
Console.WriteLine(MaxValue(1.5, 2.0, 66.2));
Console.ReadKey();
}
先输出22,再输出66.2
4.函数的递归调用:在函数中调用函数。
f(0) = 2 、f(1) = 3 、 f(n) = f(n-1)+f(n-2)
求f(40)
static int F(int n)
{
if(n == 0)
{
return 2;
}
if(n == 1)
{
return 3;
}
return F(n - 1) + F(n - 2);
}
static void Main(string[] args)
{
Console.WriteLine(F(2));
Console.ReadKey();
}