Описание клиента
В этой части программы реализованы функции-обработчики событий.
_gc class ChatClient // класс сборщика мусора ChatClient { public: static void OnJoinChat(Object *pSender, ChatEventArg *pe) { Console::WriteLine( "sender = {0}, {1} has joined the chat", // "отправитель = {0}, {1} присоединился к чату ", pSender, pe › pName); } static void OnQuitChat(Object *pSender, ChatEventArg *pe) { Console::WriteLine( "sender = {0}, {1} has guit the chat", // "отправитель = {0}, {1} оставил чат ", pSender, pe › pName); }
Клиент связывает программу обработки с событиями с помощью оператора +=.
static void Main() { // создать сервер чата ChatServer *pChat = new CratServer("01 Chat Room"); // Комната // для дискуссий 01 // зарегистрировать, чтобы получать уведомления // о событиях от сервера pChat › pJoin += new Jo_n4andler(pChat, OnJoinChat); pChat › pQuit += new QuitHanaler(pCnat, OnQuitChat);
Изначально событие представлено пустым указателем (null), т е не связано с каким-либо обработчиком событий, а добавление обработчиков событий происходит в процессе выполнения программы с помощью оператора +=. При вызове делегата, соответствующего событию, будут вызваны все зарегистрированные таким образом обработчики событий Отменить регистрацию обработчика событий можно оператором -=.