![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
Кто-нибудь использует в своем коде экзотические модификаторы методов типа new virtual или override abstract ? Интересно было бы увидеть примеры их уместного использования =)
-------------------- I don't need a reason being who I am... |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
new virtual применение придумать можно, ведь new просто прерывает цепочку наследования, её можно начать заново с прервавшего
сам по себе new использовал вполне себе осмысленно у метода Invoke в сгенерированных проксях SoapHttpClientProtocol, только от этого класса наследоваться нужды уже не было а вот оверрайдить абстракность.. чушь какая-то но вдруг действительно польза есть? |
|||
|
||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
-------------------- I don't need a reason being who I am... |
|||
|
||||
| Лен |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 20.1.2009 Репутация: нет Всего: нет |
От override abstract тоже может быть польза. К примеру, есть такая иерархия:
Если реализация SomeMethod в MyParent и в MyChildChild (и прочих потомках MyChild) сильно отличается (читай: попытка вызвать base.SomeMethod(); в MyChild или потомках приводит к краху), метод SomeMethod в MyChild не помечен как abstract, а в некотором class MyChildChild2: MyChild его забыли реализовать (не смотрите на меня так, не самая редкая ситуация в проекте на 100/1000+ классов), то ничего хорошего явно ждать не приходится. Это сообщение отредактировал(а) Лен - 20.1.2009, 13:07 |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
Лен, прикольно, не знал, что можно заабстрактить нормальный метод (точнее никогда об этом и не думал
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |