先来看一段代码:

static void Main()
{
M1(1, 2);
}
public static int M1(int a, int b)
{
return a + b;
}
public static int M1(int a, int b, int c)
{
return a + b + c;
}
public static string M1(string a, string b)
{
return a + b;
}
public static string M1( string a, string b, string c)
{
return a + b + c;
}

上边代码,我们想只调用M1一次,来实现多个不同参数但名字相同的函数的不同功能,那么可以使用函数重载来帮助我们完成这一想法:

在编辑器上也能发现,调用M1函数时可以传4种方式的参数

c#方法重载_函数重载

方法重载:

:方法的名称相同,但是参数不同。

主要体现在参数,以下需要注意的是:

(1)如果参数的类型相同,那么参数的个数一定要不同才行;

(2)如果参数的个数相同,那么参数的类型一定要不同才行。

(3)如果方法名相同参数也相同,构不成重载,且编辑器会报错!!!

(4)如果一个方法名相同,参数类型及个数相同,但是返回不同的话,也不会构成重载,且编辑器会报错!!!

我们经常用的Console.WriteLine() 就是方法重载的典型代表:

// 不同类型的参数都可以传
static void Main()
{
Console.WriteLine(1);
Console.WriteLine("2");
Console.WriteLine('1');
Console.WriteLine(1.2);
Console.WriteLine(true);
}