首先我们说一下什么是方法重载。在面对对象这样的高级语言中都允许我们在一个类中定义多个方法名相同、方法间参数个数和参数顺序不同的方法,对于参数个数不同或者参数列表不同的情况我们称之为参数列表不同。[color=red]需要注意的是这里没有提到方法的返回值[/color]。也就是决定方法是否构成重载有以下几个条件:
◆ 在同一个类中;
◆ 方法名相同;
◆ 参数列表不同。
例如下面的代码:
对于上面的代码,(1)没有参数,(2)使用了一个int类型的参数,(1)和(2)之间就构成了重载。(2)与(3)相比仅仅返回值不同,虽然重载不关心返回值的不同,但是在C#中不允许存在方法名和参数列表相同、返回值不同的方法,所以(2)和(3)不能同时存在于代码中,(3)如果不注释掉上面的代码是没有办法通过编译的。
原文连接:http://developer.51cto.com/art/200902/110689.htm
◆ 在同一个类中;
◆ 方法名相同;
◆ 参数列表不同。
例如下面的代码:
public void Show()//(1)
{
Console.WriteLine("Nothing");
}
public void Show(int number)//(2)
{
Console.WriteLine(number);
}
/*
public int Show(int number)//(3)
{
Console.WriteLine(number);
return number % 5;
}
*/
对于上面的代码,(1)没有参数,(2)使用了一个int类型的参数,(1)和(2)之间就构成了重载。(2)与(3)相比仅仅返回值不同,虽然重载不关心返回值的不同,但是在C#中不允许存在方法名和参数列表相同、返回值不同的方法,所以(2)和(3)不能同时存在于代码中,(3)如果不注释掉上面的代码是没有办法通过编译的。
原文连接:http://developer.51cto.com/art/200902/110689.htm