码农小白 C#篇
方法(函数)Ⅲ <补充>
1、方法重载
一个类中可拥有多个名称相同的方法,这叫方法的重载。使用相同名称的每个方法必须有一个和其他方法不同的签名
- 签名的组成部分
- 方法的名称
- 参数的数目
- 参数的数据类型和顺序
- 参数的修饰符
注意: 返回类型和形参的名称不是签名的一部分
class A
{
int Add(int a, int b);
int Add(float a, float b); //重载Add方法 //参数类型不同
int Add(int a,int b, int c); //重载Add方法 //参数数目不同
//float Add(float a, float b); //错误返回类型不同不算方法的重载
}
2、命名参数
C#允许我们使用命名参数,只要显示指定参数的名字,就可以任意顺序在方法调用中列出实参
class Myclass
{
static int Calc(int a, int b, int c)
{
return (a + b) * c;
}
}
class Porgram
{
static void Main()
{
int tmp = Myclass.Add(1, 2, 3); //普通调用函数
Console.WriteLine(tmp);
tmp = Myclass.Add(b: 2, c: 3, a: 1); //使用命名参数调用函数
Console.WriteLine(tmp);
}
}
输出结果
9
9
3、可选参数
所谓的可选参数就是我们可以在调用时包含这个参数,也可以忽略它。
class Myclass
{
static int Calc(int a, int b = 3) //设置形参b为可选参数,并给它赋上初始值3
{
return a + b;
}
}
class Porgram
{
static void Main()
{
int tmp = Myclass.Add(1); //省略可选参数
Console.WriteLine(tmp);
tmp = Myclass.Add(1, 3); //包含可选参数
Console.WriteLine(tmp);
}
}
输出结果
4
4
可选参数只能是值类型参数
4、递归
方法除了调用其他方法,还可以调用它自身。这叫做递归。
int f(int index)
{
return f(index - 1); //调用自身
}
对递归感兴趣的小伙伴可以去看数据结构,这里就不详细介绍了