Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2013, 16:42   #1
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию Не пойму зачем события

Здравствуйте
Я почитал про события и не нашел разницы между обычными функциями и событиями не какой разницы. Может я не все понял в чем возможности у событий что они отличаются от функций?
wanes101 вне форума Ответить с цитированием
Старый 29.06.2013, 17:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не нашел разницы между обычными функциями и событиями
Вообще-то события это переменные, хранящие в себе ссылку на функцию. Разница всетки есть.
И потом, событие это, говоря метафизически, функция, которая еще не написана. Она предполагает что сам пользователь потом, когда-то ее опишет. Это как Callback функции. Почитай о них, может понятнее станет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.06.2013, 18:18   #3
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

К стати а у vb.net есть возможность передать ссылку на функцию в качестве callback? У vb6 было это addressof, но в vb.net это возвращает объект - делегат, а можно ссылку получить? и как?
wanes101 вне форума Ответить с цитированием
Старый 29.06.2013, 19:02   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Этого не скажу. Ни Бейсик ни Си Шарп настолько не знаю.
По факту делегат то это и есть адрес, если не ошибаюсь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.06.2013, 19:54   #5
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

По данному вопросу я нашел ответ:
для этого есть класс Marshal, который имеет методы SizeOf и OffsetOf. И работает только с основными типами насчет функций и делегатов я еще пока не понял, читал тут http://www.vbstreets.ru/VBdotNET/Art...#_Toc127612058
За ответы спасибо
wanes101 вне форума Ответить с цитированием
Старый 29.06.2013, 20:01   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от wanes101 Посмотреть сообщение
По данному вопросу я нашел ответ:
для этого есть класс Marshal, который имеет методы SizeOf и OffsetOf. И работает только с основными типами насчет функций и делегатов я еще пока не понял, читал тут http://www.vbstreets.ru/VBdotNET/Art...#_Toc127612058
За ответы спасибо
зачем вам адреса?
дотнет(и шарп и vb.net) позволяют маршалировать в неуправляемый код ссылку на управляемый делегат.
погуглить прост надо.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.06.2013, 20:46   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от wanes101 Посмотреть сообщение
Я почитал про события и не нашел разницы между обычными функциями и событиями не какой разницы.
А разница в том, что функция, вызывается из определённого места программы, в процессе выполнения её алгоритма, а событие наступает по прерыванию, ввиду каких то внешних факторов. Например, пользователь нажал кнопку мышки, сформировалось прерывание и включилось событие onClick и т.д. Функция, такими возможностями не обладает.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 29.06.2013, 20:52   #8
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

А как быть если нужно использовать winapi где требуется указать адрес переменной или процедуры?
wanes101 вне форума Ответить с цитированием
Старый 29.06.2013, 21:19   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
событие наступает по прерыванию, ввиду каких то внешних факторов
Не всегда )
Цитата:
если нужно использовать winapi где требуется указать адрес переменной или процедуры?
http://developer.alexanderklimov.ru/...es/pinvoke.php
Или анонимы пишут:http://stackoverflow.com/questions/1...-work-properly
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.06.2013, 21:26   #10
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

А как WinAPI (Application programming interface) связан с событиями? Или я чего-то недопонимаю?
Цитата:
Сообщение от Stilet Посмотреть сообщение
Не всегда )
Согласен. Но в большинстве случаев, так оно и есть.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 29.06.2013 в 21:28.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зачем нужны события (event) ? MooNDeaR C# (си шарп) 15 14.12.2015 13:49
Не пойму зачем не работает?! Jone200991 Помощь студентам 0 31.05.2011 14:45
(i and 1) = 1-зачем????? firephenix Помощь студентам 7 21.03.2011 06:18
События в WPF. Обращение к компонентам формы из события Casper-SC Общие вопросы .NET 3 25.07.2010 19:03