@youkerni
недоJunior C# Unity3D developer

Можно ли узнать откуда генерируется «событие»?

Делаю свои собственные события для упрощения работы с ними в будущем.

Суть в том, что У меня есть List куда я добавляю новые события, если таковых в нем нет.
Но основная особенность событий тогда теряется: его можно сгенерировать из любого места.
Агрегирующий класс я могу передать при создании экземпляра через конструктор. А вот как узнать откуда генерируется событие - не знаю.
Могу ли я как-нибудь проверить кто генерирует данное событие? Для того что бы потом сравнить этот экземпляр с агрегирующим классом и узнать имею ли я право выполнять эту операцию.
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ответы на вопрос 2
  • Griboks
    @Griboks
    click+=(s,e)=>HandleClick(typeof(s));
    void HandleClick(Type SenderClass) {
    //...

    или
    void HandleClick(object sender) {
    if(sender is mySperClass) {
    //...

    Или что вообще вы хотите сделать? Через события можно передавать любые параметры. А вы агрегируете события или их обработчики? Если события, то сами и передавайте. Если обработчики, то зачем вообще это надо?
    Какую операцию? Листинг кода?
    Ответ написан
  • mindtester
    @mindtester
    как то странно...
    а sender??? это и есть тот кто "испустил"...

    еще один момент настораживает - вы в "листе" собираете "типы" или "экземпляры"?
    если реальные "экземпляры" "эвентов":
    - вы уверены что обработка события завершена? (очень рискуете переполнением стека)
    - не лучше ли собирать некий лог? - список атрибутов события, но сам стек обработки события надо отпускать, и желательно быстро
    Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы