![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| andrx |
|
|||
![]() Андрей ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 16.12.2005 Где: Киев Репутация: 1 Всего: 4 |
К примеру имеется следуюющий код :
Подскажите, как во вложенном класе (в примере класс B) обратиться к члену класса который содержится в классе содержащий этот вложенный класс (в примере класс A) ? Извините за сложную формулировку вопроса. Можно объявить public static int x; - но мне этот вариант не подходит. Можно объявить public class B : A - но и этот вариант мне не подходит. Может есть еще способы ? Заранее благодарен. --------------------
Лучше скажи мало, но хорошо. (Козьма Прутков) |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
А как это ты обращаешься к нестатическому члену, не имея при себе экземпляра? Вложенный класс B на самом деле не имеет ничего общего с классом A. На самом деле компилятор создает класс с именем A$B, этим вся вложенность и определяется! В твоем примере можно поступить так:
|
|||
|
||||
| andrx |
|
|||
![]() Андрей ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 16.12.2005 Где: Киев Репутация: 1 Всего: 4 |
Спасибо Exception
Вы натолкнули меня на мысль. Ведь можно реализовать так :
Помоему так проще, а ?! --------------------
Лучше скажи мало, но хорошо. (Козьма Прутков) |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
Если А не нужно "знать" о В (то есть взаимодействовать с ним), то это наипростейшее решение.
|
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 3 Всего: 154 |
А для каких целей вы вообще собираетесь использовать вложенный класс? Можно поинтересоваться?
-------------------- |
|||
|
||||
| -ser- |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 5 Всего: 13 |
andrx
полная бредятина. почему, подумай сам. Exception. близко, но тоже не то. потому что внутри нестед класса
вот классика, как должно быть на самом деле
-------------------- "Тонкая, однако, работа." |
||||||
|
|||||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 4 Всего: 6 |
По-моему, правильнее как раз вариант Exception'a. В данном случае применяется обычное включение-делегирование (has-a inheritance). Зачем сюда припаивать ещё nested-класс?
-------------------- 3 ГОДА НА |
|||
|
||||
| andrx |
|
||||
![]() Андрей ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 16.12.2005 Где: Киев Репутация: 1 Всего: 4 |
Всем спасибо !
Для Pegas
Я их собираюсь использовать как вложенные классы по своей сути ! Т.е. я их использую в классе который предназначен для визуализации работы с БД в этом классе у меня содержатся вложенные классы "детальки" (поле ввода с необходимыми мне обработчиками, форма для выбора значения из словаря, вывод найденых в БД объектов, ...) из которых и строится общий класс визуализации. Вложенные классы позволяют мне создать логически целестные и законченные классы. Ну вообщем-то это еще и стиль - кто как пишет !!! В итоге соглашусь с Exception
именно так я и реализовал ! Для -ser- Незнаю почему Вы так решили, если можно просветите. Всем большое СПАСИБО. С уважением - Андрей. Это сообщение отредактировал(а) andrx - 24.1.2006, 19:23 --------------------
Лучше скажи мало, но хорошо. (Козьма Прутков) |
||||
|
|||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 3 Всего: 154 |
http://msdn.microsoft.com/library/default....html/boagag.asp -------------------- |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |