为什么需要重载方法?

时间:2013-09-21 20:29:58

标签: c# methods overloading

当然可以通过创建另一个名称不同的方法来实现同样的目标吗?

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);
}

方法重载有什么好处?

5 个答案:

答案 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)

重载方法可提高代码清晰度。在设计复杂程序时,代码更改和某些分支变得不必要。添加了重载方法以消除复杂性并提高性能。

您可以在

了解更多信息

C# Overload Method

还有来自Jon Skeet的书C# in Depth

的摘录

C# in Depth : Overloading

答案 4 :(得分:0)

它使类构造函数更容易使用,因为它总是具有相同的名称。