![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| DsAEkb |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 27.6.2009 Репутация: нет Всего: нет |
Как реализовать доступ из вложенного класса к полям внешнего класса, например:
|
|||
|
||||
| NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 1 Всего: 13 |
Передавай в конструктор внутреннего класса ссылку на экземпляр внешнего.
-------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
| DsAEkb |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 27.6.2009 Репутация: нет Всего: нет |
Я временно так и сделал, но что-то мне внутренний голос подскзывает, что это кривое решение, есть ли каке-то еще способы?
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Ну так ясное дело не будет. a1 существует в экземплярах класса, если надо чтобы это было поле класса, сделай его статическим, а так не понятно, к полю какого конкретно экземпляра ты обращаешься. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| DsAEkb |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 27.6.2009 Репутация: нет Всего: нет |
Нет уж как раз чтобы это было поле класса не надо
думал есть способ подобным образом обращаться к полям внешнего класса |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 1 Всего: 128 |
Вложение классов друг в друга есть всего лишь их логическое объединение, не более, это твой произвол. Механика обращения к членам другого класса, будь он вложенным или внешним, одна и та же - объявление в классе, где нужно обратиться к членам другого класса, ссылки на экземпляр этого класса, о чем тут уже говорилось. Второй вариант - если логика построения приложения допускает такое, то наследовать один класс от другого, тогда ты получишь доступ к членам первого класса (при условии, что члены в родителе в режиме защищенных или публичных). Допустим, так:
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Внешний он или нет - не имеет значения. Это другой класс и у него свои экземпляры, а у вложенного - свои. Если бы такой способ был, то как ты различал бы разные экземпляры класса? -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| DsAEkb |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 27.6.2009 Репутация: нет Всего: нет |
Всё понятно, всем спасибо
|
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
все привет. вот прочел тему и возник у меня вопрос. вы утверждаете что не имеет значение вложенный ли класс или нет. предположим такую ситуацию: есть два класса. класс A и вложенный в него класс B. потом создаем еще один класс С, который никак изначально не связан ни с А ни с В.
Вопрос: если вложенность классов это "их логическое объединение" и это не на что не влияет, и это два самостоятельных класса, то как в классе С создать экземпляр класса В? у меня получилось, что экземпляр класса А можно, а класс В из класса С не видно... подскажите как? |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 18 Всего: 142 |
Экскалупатор, Просто в названии класса присутствует имя внешнего класса, но о его экземпляре нет речи.
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
diadiavova, спасибо, что то я сразу не допер сам.
|
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 10 Всего: 36 |
||||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 1 Всего: 128 |
mihryak, да, точно, доступ к приватным членам тоже будет.
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |