Действительно ли я могу получить доступ к внешним объектам класса во внутреннем классе [дубликат]

19
задан Shantanu Gupta 2 June 2010 в 13:33
поделиться

3 ответа

Если я правильно вас понимаю, вы хотите получить доступ к свойству objB класса A внутри innerC БЕЗ его передачи.

Внутренние классы C # работают не так, как описано в этой статье: Вложенные классы C # похожи на вложенные классы C ++, а не внутренние классы Java.

Если вы хотите получить доступ к A.objB из innerC, тогда вы придется каким-то образом передать класс A в innerC.

22
ответ дан 30 November 2019 в 04:07
поделиться

Вам нужно передать ссылку OuterClass в InnerClass, возможно, в конструкторе, например:

public class OuterClass
{
    //OuterClass methods

    public class InnerClass
    {
        private OuterClass _outer;

        public InnerClass(OuterClass outer)
        {
            _outer = outer;
        }
    }
}

Затем вы можете использовать эту ссылку во всех ваших методах InnerClass.

9
ответ дан 30 November 2019 в 04:07
поделиться

Поскольку ваш класс B находится в той же области видимости, что и класс C, то есть внутри класса A, вы сможете инстанцировать вложенный тип B из вложенного типа C и использовать его.

-1
ответ дан 30 November 2019 в 04:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: