Форум программистов, компьютерный форум, киберфорум
.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
)))
610 / 423 / 55
Регистрация: 31.12.2009
Сообщений: 2,334
Записей в блоге: 3
1

Обосновать необходимость использования делегатов

06.04.2012, 13:24. Показов 1390. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Недавно выполнял задание, правил проект в котором были и наследования и делегаты и вся остальная "чушь"(Сам нигде не учился, и первый раз с таким проектом столкнулся). "Чушь" потому что проект был: игра в покер, я бы все это намного проще написал, как обычно и делаю. Время поджимало, поэтому в теорию не вдавался, тупо прокопировал некоторые объекты, свойства и т.д. и все заработало..

Не могли бы привести примеры, где без делегатов нельзя обойтись в принципе?
Не зря же их придумали?

Могу проект выложить, если интересно...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2012, 13:24
Ответы с готовыми решениями:

Особенности использования динамически подключаемых сборок и делегатов
Вот тут такая проблемка… Нужно функцию, которую выдираем динамически из сборки добавить в делегат...

Нужен пример использования интерфейсов и делегатов в одной программе
Нужно найти пример использования интерфейсов и делегатов в одно программе, так, чтобы это имело...

Необходимость использования множ-ва ADOQuery и DataSource
Ребят, хотел с вами посоветоваться. Есть форма, на которой располагается 3 DBGrid'а. Они...

Дата сервис или необходимость использования посредника
Интересует вопрос необходимости использовать посредника между сайтом и БД... вопрос академический!...

9
145 / 142 / 11
Регистрация: 11.09.2011
Сообщений: 411
06.04.2012, 13:34 2
ну а события в win forms как без делегатов обрабатывать?
0
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
06.04.2012, 14:17 3
Цитата Сообщение от KristopherRobin Посмотреть сообщение
ну а события в win forms как без делегатов обрабатывать?
Как в яве, например) Заводим интерфейс обработчика, и создаем на каждый обработчик новый класс.

PS. Это не значит что я считаю что так лучше/так нужно делать.
0
)))
610 / 423 / 55
Регистрация: 31.12.2009
Сообщений: 2,334
Записей в блоге: 3
06.04.2012, 14:23  [ТС] 4
Цитата Сообщение от turbanoff Посмотреть сообщение
Это не значит что я считаю что так лучше/так нужно делать
Я пока тот проект разбирал, мозг кипел...
Сейчас пытаюсь простенький проект для себя написать, опять закипаю
0
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
06.04.2012, 14:26 5
Цитата Сообщение от aleks_pilipenko Посмотреть сообщение
Не могли бы привести примеры, где без делегатов нельзя обойтись в принципе?
Вы знакомы с каким нибудь другим языком программирования, помимио C#?
Например, если упростить, то делегаты можно считать указателями на функции (как в c/c++/Pascal etc...). И все что применимо к ним применимо к делегатам. Дополнительный уровень абстракции, который позволяет не привязываться к конкретной реализации.

Добавлено через 26 секунд
Цитата Сообщение от aleks_pilipenko Посмотреть сообщение
Цитата Сообщение от turbanoff
Это не значит что я считаю что так лучше/так нужно делать
Я пока тот проект разбирал, мозг кипел...
Это я имел ввиду java like обработчики
1
)))
610 / 423 / 55
Регистрация: 31.12.2009
Сообщений: 2,334
Записей в блоге: 3
06.04.2012, 14:36  [ТС] 6
Цитата Сообщение от turbanoff Посмотреть сообщение
Вы знакомы с каким нибудь другим языком программирования, помимио C#
Да, недавно начал С++ юзать, указатели тоже бесят. Честно говоря руки до теории не доходят, хочется и быстро и качественно. Стараюсь обходиться без них... Хотя, понятно, что придется и с ними разобраться...
На днях тему видел:

Смотрю код высоконагруженного сервера. В ядре обсчёта вижу код типа:
C++
1
2
3
4
5
6
7
8
9
10
11
func() {
ObjectGame* OG=MainOG;
while(OG->next!=NULL)
{
ia=(int*)OG+12;
i=*ia;
/* что-то делает*/
*ia=i;
/* код функции, внутри функции ia претерпевает различные изменения*/
OG=OG->next;
}}
С большими глазами иду к прогеру, который это всё написал. Спрашиваю: почему он не пользуется методами Set и Get, и вообще, почему именно 12 байт?
На что он мне отвечает: «Внутри кода функции есть ветвящийся цикл, в котором перебираются многие параметры объекта. Если пользоваться методами Set и Get, а это переход по адресу, причём у каждого объекта он свой, конвейер процессора офигеет и сбросится. Это плюс 30 тактов на каждый переход. Всего таких объектов в секунду надо обсчитать порядка нескольких миллионов. Частота ядра — три миллиарда операций в секунду. Отсюда вывод: идите вы лесом со своим ООП!»


Не совсем понял, о чем там речь, но понятно, что указатели рулят...
0
145 / 142 / 11
Регистрация: 11.09.2011
Сообщений: 411
06.04.2012, 14:45 7
Честно говоря руки до теории не доходят, хочется и быстро и качественно.
я раньше все на функциях делал, проще и понятнее. было.. но потом всетаки взял да начал книги читать, узнал что такое классы, указатели и проч.. ну и делегаты конечно ) нудк вот, после чтения я понял каким был хеллоувордщиком раньше и какие же удобные вещи эти классы, события, обобщения, делегаты и прочее все что напридумывали программисты..чем то я пользуюсь постоянно, чем то не пользуюсь, но зато знаю основы и если надо будет то я знаю в какую сторону нужно копать. вобщем, очень тебе советую прочитать какуюнить книгу до конца.

Добавлено через 3 минуты
кстати не так уж в теории там и сложно, я шилда прочитал (900 с чемто страниц) за месяц, петцольда (программирвоание winforms 400 с чемто стр) за недели полторы.. терь полностью понимаю код генерируемый visual studio.. вобщем одна польза. какието главы я просто бегло читал и смотрел код, а некоторые (котоыре мне в данный момент наиболее интересны) я читал и делал сразу на практике..
1
)))
610 / 423 / 55
Регистрация: 31.12.2009
Сообщений: 2,334
Записей в блоге: 3
06.04.2012, 14:46  [ТС] 8
Цитата Сообщение от KristopherRobin Посмотреть сообщение
петцольда (программирвоание winforms 400 с чемто стр)
Да, осталось только с книгой определиться...
Вот что-то увидел:

Цитата Сообщение от Koran Посмотреть сообщение
в книге Рихтера есть красивый пример использования делегатов. раздел Делегаты.
а вообще делегаты используются в событиях полным ходом
ну и не только
0
1319 / 992 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
09.04.2012, 16:28 9
Цитата Сообщение от aleks_pilipenko Посмотреть сообщение
Не совсем понял, о чем там речь, но понятно, что указатели рулят...
Насколько я понял эту ... пламенную ... речь того "программиста", она никакого отношения к указателям не имеет (только get, set), и указывает лишь на то, что ему не знакомо понятие inline-функции...
к слову, C# автоматом (в релизном конфиге) инлайнит геттеры

Добавлено через 7 минут
и, кстати, да: обычно за такое убивают
1
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,133
Записей в блоге: 6
17.04.2012, 07:19 10
Пример кода из моего проекта:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private void SegmentWith(SegmentDeletate agetsegment)[...] <- большая процедура
        
        private void MenuSegmentWatershed_Click(object sender, RoutedEventArgs e)
        {
           SegmentWith((file) => { return file.Segment_Watershed(); });
        }
 
        private void MenuSegmentGraph2_Click(object sender, RoutedEventArgs e)
        {
            SegmentWith((file) => { return file.Segment_Graph1(); });
        }
        private void ButtonSegmentSettings_Click(object sender, RoutedEventArgs e)
        {
            SegmentWith((file) => { return file.Segment_Graph(null); });
        }
Где:
C#
1
        private delegate List<DividerDraft> SegmentDeletate(DividerFile afile);
0
17.04.2012, 07:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2012, 07:19
Помогаю со студенческими работами здесь

Реальный пример, демонстрирующий необходимость использования XML.
В теории наслушался и начитался много про XML. Но на практике пока не опробовал. В связи с чем...

Обосновать применение рекурсии
дана задача, и ответ, в который нужно вписать рекурсивную процедуру возвращения указателя на...

Обосновать решение уравнения
Имеется формула 1-\frac{1}{2^2}+\frac{1}{3^2}-\frac{1}{4^2}+\frac{1}{5^2}-\frac{1}{6^2}+......\pm...

Утверждение о рядах. Обосновать ответ.
Верно ли утверждение &quot;если положителные числовые ряды \sum\limits_{k=1}^{ \infty} \mathsf{U}_{k} и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru