![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Valentin |
|
|||
|
Unregistered |
Здравствуйте!
Вопрос по C#: Пусть определен базовый класс с виртуальным методом f() и цепочка производных от него классов, переопределяющих этот метод: public class c0 { ... public virtual void f() {...}; } public class c1 : с0 { ... public override void f() {...}; } public class c2 : с1 { ... public override void f() {...}; } ................................................... public class cN : сN-1 { ... public override void f() {...}; } Пусть есть переменная самого базового класса C0, которая определяется как c0 ref = new cK(); Здесь cK - один из производных от c0 классов, где K<=N. То есть, ref есть ссылка на экземляр произвольного производного от c0 класса. ВОПРОС: Как, зная ref, ссылающуюся на экземпляр класса cK, вызвать метод f(), принадлежащий промежуточному (между c0 и cN) классу этой же цепочки, где L<=K? Спасибо! |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 9 Всего: 172 |
Никак, если каждый из методов в цепочке не вызывает base.f(), и то при этом будут вызваны все f() между K и L (при условии что cL.f() уже не вызывает метод базового класса).
ЗЫ ref - кейворд -------------------- |
|||
|
||||
| Valentin |
|
|||
|
Unregistered |
Уважаемый Domestic Cat!
Большое спасибо за помощь. Спасибо и за поправку (ref). |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |