c#参数问题

时间:2010-06-01 21:20:18

标签: c#

我是c#的新手,需要帮助了解以下函数中发生的事情

    public bool parse(String s)
    {
        table.Clear();
        return parse(s, table, null);
    }

其中table是Dictionary。我可以看到它是递归的,但是当它被定义为只取一个字符串时,解析如何被传递三个参数?

编辑:如何删除问题?解析已经重载 facepalm

5 个答案:

答案 0 :(得分:7)

重载parse存在,接受3个参数。

答案 1 :(得分:3)

不,它不是递归的。

这是一个完全不同的功能。

在C#和C ++中,不同的函数可以具有相同的名称。这称为“重载”

答案 2 :(得分:0)

您的代码中必须有另一个定义,它具有一个接受三个参数的解析方法。右键单击返回行的“解析”,然后在visual studio中选择“转到定义”以找到它。

答案 3 :(得分:0)

基于类的面向对象语言中的方法重载是一个非常有用的工具。方法类似于函数(它们具有参数,它们返回一个值,除非它们是空的并且它们执行某些操作),但它们是类(如果它们是静态的)或对象的一部分。方法由方法签名识别。如果为类或类的对象定义两个具有相同名称的方法,但参数列表不同,则它们将成为两种不同的方法,具有相同的名称。

优点: 1.)如果某些方法基本上是相同的,你会从一开始就知道,因为你给它们完全相同的名字。 2.)您可以使用重载以简单的方式解决许多问题,这些问题在C等语言下很难管理。

如果你在那里调用parse(“foo”)会发生递归,因为那会调用相同的函数。

答案 4 :(得分:0)

解析函数正在重载。在重载相同的功能可以根据参数做不同的工作。

第二个解析方法,除了3个参数。