函数重载
**简介:**函数名相同,函数语句块相同,但是函数传入的参数的数量不同,或者数量相同,类型及顺序不同。
作用:
-
命名一组相同功能的函数,减少函数名的数量,减少命名空间的污染;
-
提高程序的可读性。
应用:
-
函数重载与函数返回值类型无关;
-
函数重载与参数名无关。
实例:
//参数数量不同
static int CalcSum(int a,int b,int c) { return a + b + c; }
//参数数量相同,类型不同
static float CalcSum(float a,int b) { return a + b; }
//参数数量不同,ref、out不同,加上ref或者out也表示传入的参数是不同的类型
static int CalcSum(ref int a,int b) { return a + b; }
//数量相同,类型顺序不同
static float CalcSum(float a,float b) { return a + b; }
练习题:
namespace 函数重载
{
internal class Program
{
//练习题一:请重载一个函数,让其可以比较两个int或两个float或两个double的大小,并返回较大的那个值
static int CompareNum(int a,int b)
{
int num;
if (a >= b) num = a;
else num = b;
return num;
}
static float CompareNum(float a, float b)
{
float num;
if (a >= b) num = a;
else num = b;
return num;
}
static double CompareNum(double a, double b)
{
double num;
if (a >= b) num = a;
else num = b;
return num;
}
//请重载一个函数,让其可以比较n个int或n个float或n个double的大小,
//并返回最大的那个值。(用params可变参数来完成)
static int ComparenNum(params int[] a)
{
int num = a[0];
for (int i = 0; i < a.Length; i++)
{
if (num < a[i])
{
num = a[i];
}
}
return num;
}
static float ComparenNum(params float[] a)
{
float num = a[0];
for (int i = 0; i < a.Length; i++)
{
if (num < a[i])
{
num = a[i];
}
}
return num;
}
static double ComparenNum(params double[] a)
{
double num = a[0];
for (int i = 0; i < a.Length; i++)
{
if (num < a[i])
{
num = a[i];
}
}
return num;
}
static void Main(string[] args)
{
CalcSum(1,2);
//练习题一:
CompareNum(1.02312,2);
Console.WriteLine(CompareNum(1, 2));
Console.WriteLine(CompareNum(3.02312f, 2));
Console.WriteLine(CompareNum(5.02312, 2));
//练习题二:
Console.WriteLine(ComparenNum(1,2,3,4,5,6));
Console.WriteLine(ComparenNum(1.0f,2,3,4,5,6,20.2222f));
Console.WriteLine(ComparenNum(1.0,2,3,4,5,6,20.2));
}
}
}