0 / 0 / 0
Регистрация: 04.08.2017
Сообщений: 18
1

Проверка подписки на событие, инициализированное в другом классе

11.03.2019, 05:50. Показов 2769. Ответов 1

Author24 — интернет-сервис помощи студентам
Суть в заголовке, нужны советы как проверить кто подписан на событие. Event инициализирован в другом классе.
Создал метод проверки, подписан ли объект на событие.
C#
1
2
3
4
 private static bool IsSubscribed(EventHandler @event,object evHandler )
        {
            return @event.GetInvocationList().Contains(evHandler);
        }
Использую ...
C#
1
2
//Выдает : событие  Fbrev.RemoteEventCounts может находиться только в левой части операции += или -= 
string mess = (IsSubscribed(Fbrev.RemoteEventCounts,fbrev)) ?  "есть":"нет";
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2019, 05:50
Ответы с готовыми решениями:

Вызвать событие в другом классе
Добрый день. Есть класс MainWindow, в нём есть функция AddPreloadedCharts(). Есть статический...

Необходимо реализовать событие в одном классе, а обработчик в другом
Помогите реализовать событие, чтобы в одном классе оно создавалось, а в другом обрабатывалось:...

Как использовать объект класса, созданого в определеном классе, в другом классе
У меня такой вопрос,как использовать объект класса,созданого в определеном классе,в другом классе.У...

Как использовать информацию парсированую в 1 классе в другом классе
имеются 2 класса , объясните плз в чём ошибка using System; using System.Collections.Generic;...

1
1582 / 587 / 184
Регистрация: 05.12.2015
Сообщений: 942
11.03.2019, 12:56 2
поле event можно использовать только в классе, где оно объявлено.
Для решения проблемы можно объявить делегат - разницы никакой.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   public delegate void myDelegate ( object sender, EventArgs e );
 
   public class eventClass
   {
      public myDelegate myevent;
      public void handler ( object sender, EventArgs e ) { }
      public void handler1 ( object sender, EventArgs e ) { }
 
      public eventClass ()
      {
         myevent += handler;
      }
      public bool ContainHandler ( myDelegate myev, myDelegate hand )
      {
         bool result = Array.Exists ( myev.GetInvocationList (), ( ev ) => hand.Equals ( ev ) );
         return result;
      }
   }
проверка работы

C#
1
2
3
         eventClass ev = new eventClass ();
         bool result = ev.ContainHandler ( ev.myevent, ev.handler ); //True
         result = ev.ContainHandler ( ev.myevent, ev.handler1 );     // False
1
11.03.2019, 12:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2019, 12:56
Помогаю со студенческими работами здесь

Получение содержимого ListBox при подписки на событие dbClick
Есть ListBox, там я подписался на события двойного клика мыши, получается что при клики на любую...

Переменная изменилась в одном классе, куда "воткнуть" код в другом классе
Привет всем, Достало это событийное программирование. :wall: Я не делаю событийные "калькуляторы"...

Нужно вызвать через сторонний метод(в другом классе,который в другом файле) метод в форме
public void Print_Inform(int numb1,int znak,int numb2) { switch(znak) { case 1:...

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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