Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » C#

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6

Открыть новую тему     Написать ответ в эту тему

enon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такая проблема:
Есть класс А в нем виртуальные методы check() и correct().
Пичем метод correct() использует check().
 
Есть класс В наследник А.  В нем check() и correct() перегружены.
И метод correct() использует base.correct().
 
Пролучется что при вызове В.correct() просходит:
B.correct() -> A.correct() -> B.check()
A мне нужно
B.correct() -> A.correct() -> А.check()
 
Т.е. как в базовом методе вызывать базовый виртуальный метод?
А пока пришлось убрать c метода check() директиву virtual.

Всего записей: 59 | Зарегистр. 05-06-2004 | Отправлено: 14:32 13-03-2005
Sav



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
А пока пришлось убрать c метода check() директиву virtual.
 
А зачем ты ее туда ставил?
 

Всего записей: 952 | Зарегистр. 06-02-2003 | Отправлено: 15:51 14-03-2005
enon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А зачем ты ее туда ставил?

Так, на всякий случай. Вопрос не в том нужно это или не нужно.
Вопрос:
Цитата:
как в базовом методе вызывать базовый виртуальный метод?  

Хочу знать, может быть понадобится когда-нибудь.

Всего записей: 59 | Зарегистр. 05-06-2004 | Отправлено: 17:47 14-03-2005
pita

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
enon

Цитата:
 как в базовом методе вызывать базовый виртуальный метод?

Если всегда нужно вызывать метод базового класса, то просто не делать его виртуальным.
Если это необходимо только в конкретной реализации наследника, то в нём (наследнике) не создавать новую реализацию виртуального метода.

Всего записей: 761 | Зарегистр. 06-11-2003 | Отправлено: 20:09 14-03-2005
Sav



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Вопрос не в том нужно это или не нужно.

Вопрос именно в этом. И, похоже, это не нужно (если причина
Цитата:
Так, на всякий случай.
). Именно эта директива и указывает использовать перегруженый метод.
Твой вопрос можно перефразировать так:
"как сделать метод невиртуальным? А пока пришлось убрать директиву virtual."

Всего записей: 952 | Зарегистр. 06-02-2003 | Отправлено: 12:55 15-03-2005 | Исправлено: Sav, 13:05 15-03-2005
enon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sav
...Да, может быть, ты прав. Я еще подумаю.

Всего записей: 59 | Зарегистр. 05-06-2004 | Отправлено: 17:05 15-03-2005
gl0be

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sav прав.Но если тебе нужно чтобы оба метода были виртуальными сделай так:
class A
{
                public virtual void Check()
{
Method();
}
public virtual void Correct()
{
Method();
}
public void Method()
{
 
}
}

Всего записей: 21 | Зарегистр. 24-12-2003 | Отправлено: 00:52 16-03-2005
Tasmon

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно ли где-нибудь найти bindings  для библиотеки GMP (GNU multiple Precision) для шарпа?

Всего записей: 1 | Зарегистр. 22-03-2005 | Отправлено: 02:16 29-03-2005
enon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Какой атрибит поставить для protected полей, что бы они тоже были сериализованы.
Сериализацию провожу в формате XML. Платформа .NET 2.0beta. Среда Visual Studio .NET 2005 beta.

Всего записей: 59 | Зарегистр. 05-06-2004 | Отправлено: 15:28 18-04-2005
VD sw

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите плз как в C# создати отчет(как QReport в Dephy)

Всего записей: 1 | Зарегистр. 03-05-2005 | Отправлено: 02:51 03-05-2005
Lincos

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все просто. Создаешь отчет в Crystal Reports, а потом прикручиваешь его с помощью CrystalReportViewer.

Всего записей: 5 | Зарегистр. 29-04-2005 | Отправлено: 08:49 03-05-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » C#


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru