2

我在玩本地函数,如果它包含同名的本地函数,我不知道如何调用主机函数。

class Program
{
    static void Main(string[] args)
    {
        new Test().Foo();

        Console.Read();
    }
}

class Test
{
    public void Foo()
    {
        Console.WriteLine("Host function");

        void Foo()
        {
            Console.WriteLine("Local function");
        }

        Foo();  // This calls the local function

        Foo();  // I would like to call the host Foo() recursively here
    }
}
4

1 回答 1

8

您可以在通话前加上this

Foo(); // calls the local function
this.Foo(); // calls the class instance function

尽管如此,即使有这样的解决方法,仍然强烈建议使用更好的函数名称来更清楚地区分两者。代码对编译器来说不能模棱两可,但对于阅读它的人来说也不应该模棱两可。

于 2018-06-24T12:09:21.500 回答