摘要
在C#中,方法的重载是指参数个数或参数类型不同的同名方法,用来实现类似的功能。
我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,我们可以根据参数类型不同去选择我们所需要的。
正文
方法重载
在同一个类中,方法名称相同,但是参数列表不同(参数个数不同、参数类型不同、不同类型的排列顺序不同),称之为方法的重载,方法的重载不包含继承关系,重载不用考虑方法的返回值类型,重载类型顺序必须不同;
internal class Program
{
static void Main(string[] args)
{
Add(1,2);
Add(1,2,3);
Add("A", "B");
}
static void Add(int x, int y)
{
Console.WriteLine(x + y);
}
static void Add(int x, int y, int z)
{
Console.WriteLine(x + y + z);
}
static void Add(string a, string b)
{
Console.WriteLine(a + b);
}
}
image.png
构造函数重载
只要符合重载的规则即可,重载函数常用来实现功能类似而所处理的数据类型不同的问题。
- 函数的参数个数不同。
- 函数的参数类型不同或者参数类型顺序不同,
创建一个Person类
public class Person
{
public Person()
{
Console.WriteLine("无参数重载");
}
public Person(string name)
{
Name = name;
Console.WriteLine("一个参数name重载");
}
public Person(int id, string name)
{
Id = id;
Name = name;
Console.WriteLine("两个参数id,name重载");
}
public Person(int id, string name, int age)
{
Id = id;
Name = name;
Age = age;
Id = id;
Name = name;
Console.WriteLine("三个参数id,name,age重载");
}
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
Person person = new Person();
Person person1 = new Person("张三");
Person person2 = new Person(1, "张三");
Person person3 = new Person(1, "张三", 30);
image.png
重载好处
不用对不同的参数类型或参数个数,而写多个函数,就像设备启动是按一个键还是两个键或是多个键,我们只用取同一名字Start就可以了,只是参数不同,这个命名也简单不少,且容易懂。
在调用时VS可以根据不同的参数个数,顺序,类型,自动匹配方法。
网友评论