c#学习笔记之十四,什么是method overloading?

什么是method?函数也。overloading,是过载的意思。为什么会过载呢?因为一个函数,本来后面拖着两个参数的,现在拖着三个参数了,那不是过载是什么?

为什么同一个函数,后面可以跟两个参数,也可以给跟三个甚至是更多个参数呢?因为,C#是一个强类型语言。而一个函数的类型的,是由返回值和参数情况决定的,参数情况不一样,那么函数就是不同的。这一点可以参考函数代表(delegate)的声明格式,它都是要把返回值和参数情况都明确的。既然是不同的函数,定义可以定义,使用也可以使用。这样有一个好处,就是可以造成默认参数情况的假象。

比如我默认的Decrease()函数是减一。那么我就只要传递一个被减数参数就可以了。但是非默认情况下,可以自己设置一个减去的数 ,这样,就需要两个参数了。因此,我可以设置名字相同的两个函数(本质是不同的)。一个只有一个被减数参数,一个含被减数和减数两个参数。那么当只有一个参数的时候,表现的就像是默认的一样的。

using System;

namespace DefaultDecrease
{
class Program  {
	static int  Decrease(int dividend)
		{
		return dividend --;
		 }
	static int Decrease(int dividend,int divider)
		{
		return  dividend - divider;
		 }
	
	public static void Main(string[] args)
		{
		int result;
		result = Decrease(10);//一个参数,默认减一.
		Console.WriteLine(result);
		result = Decrease(10,5);//两个参数,就是被减数减去减数啦,哈哈
		Console.WriteLine(result);
		Console.Write("Press any key to continue . . . ");
		Console.ReadKey(true);
		}
	            }
}

对method overloading的理解,是建立在对C#强类型的特性知道的情况的。因此,在学习一门语言的时候,不能只学具体的,还是要了解语言所谓顶层设计层面的东西。

你可能感兴趣的:(C#)