Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование модификаторов методов 
:(
    Опции темы
QryStaL
Дата 20.1.2009, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Кто-нибудь использует в своем коде экзотические модификаторы методов типа new virtual или override abstract ? Интересно было бы увидеть примеры их уместного использования =)


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
mihryak
Дата 20.1.2009, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



new virtual применение придумать можно, ведь new просто прерывает цепочку наследования, её можно начать заново с прервавшего
сам по себе new использовал вполне себе осмысленно у метода Invoke в сгенерированных проксях SoapHttpClientProtocol, только от этого класса наследоваться нужды уже не было

а вот оверрайдить абстракность.. чушь какая-то
но вдруг действительно польза есть?
PM MAIL ICQ   Вверх
QryStaL
Дата 20.1.2009, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Цитата(mihryak @  20.1.2009,  12:25 Найти цитируемый пост)
но вдруг действительно польза есть?

вот и мне интересно =)


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
Лен
Дата 20.1.2009, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 20.1.2009

Репутация: нет
Всего: нет



От override abstract тоже может быть польза. К примеру, есть такая иерархия:
Код

class MyParent
{
  virtual void SomeMethod()
  {
    ...
  }
}
abstract class MyChild: MyParent
{
  override abstract SomeMethod();
}
class MyChildChild(): MyChild
{
  override void SomeMethod()
  {
    ...
  }
}

Если реализация SomeMethod в MyParent и в MyChildChild (и прочих потомках MyChild) сильно отличается (читай: попытка вызвать base.SomeMethod(); в MyChild или потомках приводит к краху), метод SomeMethod в MyChild не помечен как abstract, а в некотором class MyChildChild2: MyChild его забыли реализовать (не смотрите на меня так, не самая редкая ситуация в проекте на 100/1000+ классов), то ничего хорошего явно ждать не приходится.

Это сообщение отредактировал(а) Лен - 20.1.2009, 13:07
PM MAIL   Вверх
mihryak
Дата 20.1.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



Лен, прикольно, не знал, что можно заабстрактить нормальный метод (точнее никогда об этом и не думал smile)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.