![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
Вот такая ерундовая возникла проблема. А времени разбираться самому нет
Допустим у меня есть класс
Я пронаследовал от него другой класс и хочу, чтобы для объектов нового класса TestMethod стал private или был бы вообще недоступен. Как это сделать? -------------------- Да. Именно так. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
хе-хе
http://forum.vingrad.ru/index.php?showtopic=30483 если найдешь способ отличный от обертки дай знать пожалста -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 1 Всего: 19 |
Полностью спрятать нельзя, но можно ограничить доступ к ним :
|
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
Mad
Согласен. Но это не слишком хорошо. -------------------- Да. Именно так. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 1 Всего: 19 |
Дрон
В каком смысле хорошо ? |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
У меня в базовом есть метод Send(object param) Я пронаследовал от него и хочу, чтобы был новый метод Send(Message param). Т.е., чтобы можно было посылать только объекты класса Message. Оставлять видимым метод с параметром типа object я вообще не хочу. -------------------- Да. Именно так. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 1 Всего: 19 |
Дрон
Ну так напиши :
|
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
Mad
А зачем людей с толку сбивать? Если есть метод с параметром object, то и работать он должен для любого объекта... Только чего-то мы от темы немного отклонились -------------------- Да. Именно так. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 1 Всего: 19 |
Дрон
В .NET все обьекты являются наследниками от object
А прятать методы родительского класса это как |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
Раз уж пошёл такой разговор...
Прятать методы -- это как раз, чтобы уберечь от возможных ошибок. Моим классом будут пользоваться другие люди. И что же я каждому из них должен буду объяснять -- вот этим методом пользуйся, а вот этим не пользуйся. Похоже всё-таки прийдётся писать wrapper -------------------- Да. Именно так. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 1 Всего: 19 |
Дрон
Ну, так определи в родителе метод как protected и все Добавлено @ 18:19
Кслати, адля чего по твоему документация API состовляется |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
Но с другой стороны мне не хочется менять родительский класс, ибо писал его не я. Короче, из любой проблемы можно найти выход. Другое дело, что выход этот иногда через жопу. Поэтому я и хотел спросить -- а нет ли стандартных средств. Видимо, нет Это сообщение отредактировал(а) Дрон - 23.10.2004, 18:59 -------------------- Да. Именно так. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 1 Всего: 19 |
Дрон
Стандартных действительно нет, и не может быть. Чтобы полностью закрыть доступ, тебе надо убрать указатель из vtabl, тем самым убрать этот метод и из родителя тоже. |
|||
|
||||
| Дрон |
|
||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
Меня немного смущает то, что в MSDN написано:
-------------------- Да. Именно так. |
||||
|
|||||
| Mad |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 1 Всего: 19 |
Дрон
Если ты так сделаеш:
тогда Parent.Test будет public а Child.Test будет protected Правда вот такой код:
не только компилится буз ошидок и варнингов, но и в обеих случаях вызавает метод Parent.Test |
||||
|
|||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 24 Всего: 93 |
Да это я уже понял...
-------------------- Да. Именно так. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 1 Всего: 19 |
И кстати, если писал класс не ты, то и не тебе прятать его функции |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |