Доступ к внешнему классу с тем же именем, что и у вложенного класса - PullRequest
0 голосов
/ 05 января 2019

Прошу прощения, если есть ответ, но я не смог его найти.
Я в настоящее время в ситуации, показанной ниже. Я ожидал, что это выдаст ошибку, но это не так.
Переменная внутри 'Outer', называемая 'inner', является экземпляром Outer.Inner, закрытого вложенного класса. Мне интересно, как можно получить доступ к не вложенному внутреннему экземпляру.
Вероятно, это можно сделать, используя разные пространства имен, но есть ли другой способ?

public class Outer {
    private Inner inner = new Inner(); // This is the Outer.Inner class

    private class Inner { }
}

public class Inner { }

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Если вы не хотите помещать его в пространства имен, вы можете использовать global:: для ссылки на типы внутри глобального пространства имен:

public class Outer
{
    private global::Inner inner = new global::Inner(); 
    private class Inner
    {
    }
}

public class Inner
{
}
0 голосов
/ 05 января 2019

Это, кажется, работает нормально.

Я использовал пространство имен перед именем класса.

namespace Example
{
    public class Outer
    {
        private Example.Inner inner = new Example.Inner();

        private class Inner { }
    }

    public class Inner { }
}
...