C#系列之函数重载

函数重载指的是在同一语句块中(class或者struct),函数(方法名)相同,函数的数量不同,或者参数的数量相同,但参数类型或顺序不同。

1.作用:

①命名一组功能相似的函数,减少函数名的数量,避免命名空间的污染

②提高程序的可读性

2.实例

注意:重载和返回值类型无关,只和参数类型,个数,顺序有关。调用时,程序会自己根据传入的参数类型判断使用哪一个重载。

(变长参数,ref,out将在该系列中的其他篇目中详细阐述。)

static int CalcSum(int a,int b)
{
return a+b;
}
//参数数量不同
static int CalcSum(int a,int b,int c)
{
return a+b+c;
}
//数量相同,类型不同
static float CalcSum(float a,float b)
{
return a+b;
}
//数量相同,类型不同
static float CalcSum(int a,float f)
{
return a+f;
}
//数量相同,顺序不同
static float CalcSum(float f,int a)
{
return f+a;
}

特殊地,存在:

static float CalcSum(ref float f,int a)
{
return f+a;
}
//也可以表示数量相同,类型不同

但是不能如下所示重载,如(ref和out不能同时修饰),变长参数可以重载,但是默认参数不属于。

//ref和out
static float CalcSum(ref float f,int a)
{
return f+a;
}
//此时是正常的,但是以下不能构成重载,会报错
static float CalcSum(out float f,int a)
{
f=1;
return f+a;
}


//变长参数与默认参数
static float CalcSum(int a,int b,params int[] arr)
{
return 1;
}//正常运行

static float CalcSum(float f,int a=1)
{
return f+a;
}//报错

3.调用

static void Main(string[] args)
{
Console.WriteLine("函数重载");
CalcSum(1,2);
CalcSum(1.1f,2);
CalcSum(1,2,3);
CalcSum(1,1.2f);
}

4.总结

①同一个语句块中,函数名相同,参数数量,类型,顺序不同的函数,就称为重载函数。

②注意:和返回值无关

③作用:一般用来处理不同参数的同一类型的逻辑处理。

你可能感兴趣的:(C#系列,c#)