using System; namespace Lesson { class Program { #region 知识点一 基本概念 //重载概念 //在同意语句块class或struct中 //函数(方法)名相同 //参数的数量不同 //或者 //函数的数量相同,但参数的类型或顺序不同 //作用: //1.命名一组功能相似的函数,减少函数名的数量,避免命名空间的污染 //2.提升程序可读性 #endregion #region 知识点二 实例 //注意: //1.重载和返回值类型没有关系,之和参数类型,个数,顺序有关 //2.调用时 程序会自己根据传入的参数类型判断使用哪一个重载 //基础函数 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(float a, int b) { return a + b; } //数量相同 顺序不同 static float CalcSum(int a, float b) { return a + b; } //只要不是完全相同,都可以重载 //ref和out也可以视为一种改变 static float CalcSum(ref int a, float b) { return a + b; } //params可变参数也可以视为一种改变 static float CalcSum(ref int a, float b, params int[] arr) { return a + b; } #endregion static void Main(string[] args) { Console.WriteLine("基础函数:"); Console.WriteLine(CalcSum(1, 2)); Console.WriteLine("数量不同重载:"); Console.WriteLine(CalcSum(1, 2, 3)); Console.WriteLine("类型不同重载:"); Console.WriteLine(CalcSum(1.2f, 1.3f)); Console.WriteLine("类型数量都不同重载:"); Console.WriteLine(CalcSum(1.2f, 1)); Console.WriteLine("顺序不同重载:"); Console.WriteLine(CalcSum(1, 1.2f)); } } }