| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Использование модификаторов методов |
| Автор: QryStaL 20.1.2009, 10:21 |
| Кто-нибудь использует в своем коде экзотические модификаторы методов типа new virtual или override abstract ? Интересно было бы увидеть примеры их уместного использования =) |
| Автор: mihryak 20.1.2009, 12:25 |
| new virtual применение придумать можно, ведь new просто прерывает цепочку наследования, её можно начать заново с прервавшего сам по себе new использовал вполне себе осмысленно у метода Invoke в сгенерированных проксях SoapHttpClientProtocol, только от этого класса наследоваться нужды уже не было а вот оверрайдить абстракность.. чушь какая-то но вдруг действительно польза есть? |
| Автор: QryStaL 20.1.2009, 12:38 |
вот и мне интересно =) |
| Автор: Лен 20.1.2009, 13:05 | ||
От override abstract тоже может быть польза. К примеру, есть такая иерархия:
Если реализация SomeMethod в MyParent и в MyChildChild (и прочих потомках MyChild) сильно отличается (читай: попытка вызвать base.SomeMethod(); в MyChild или потомках приводит к краху), метод SomeMethod в MyChild не помечен как abstract, а в некотором class MyChildChild2: MyChild его забыли реализовать (не смотрите на меня так, не самая редкая ситуация в проекте на 100/1000+ классов), то ничего хорошего явно ждать не приходится. |
| Автор: mihryak 20.1.2009, 13:19 |
| Лен, прикольно, не знал, что можно заабстрактить нормальный метод (точнее никогда об этом и не думал |