当然可以通过创建另一个名称不同的方法来实现同样的目标吗?
public void SayHello(string name)
{
Console.WriteLine("Hello " + name);
}
public void SayHello(string name, string name2)
{
Console.WriteLine("Hello + name + "," + name2);
}
与
相同public void SayHelloToTwoPeople(string name1, string name2)
{
Console.WriteLine("Hello + name + "," + name2);
}
方法重载有什么好处?
答案 0 :(得分:1)
你不需要,但它有助于保持程序的一致性。您不应该在您的方法名称中明确声明您可以向两个人打招呼,您的代码应该说明一切。
应该是显而易见的
public void SayHello(string person) {
Console.WriteLine("Hello, " + person);
}
和
public void SayHello(String person1, string person2) {
Console.WriteLine("Hello, " + person1 + " and, " + person2);
}
无需制作极其冗余的方法名称。
答案 1 :(得分:0)
大多数情况下的好处纯粹是语义上的。如果两个方法做同样的事情(但采用略有不同的参数),为什么要以不同的方式命名它们?
如果您正在阅读API,如果方法根据其重载进行分组,则更容易阅读。
答案 2 :(得分:0)
我能想到的一个很好的例子就是当你有一个复杂的函数,它为用户提供了执行相同功能的不同方法。当您想要“猜测”用户想要的内容时,您可以删除参数。
class ImportantClass
{
public void SomeMethod()
{
SomeMethod(1); // Some default value
}
public void SomeMethod(int variable)
{
// Do something here
}
}
答案 3 :(得分:0)
重载方法可提高代码清晰度。在设计复杂程序时,代码更改和某些分支变得不必要。添加了重载方法以消除复杂性并提高性能。
您可以在
了解更多信息还有来自Jon Skeet的书C# in Depth
答案 4 :(得分:0)
它使类构造函数更容易使用,因为它总是具有相同的名称。