Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
26 / 26 / 9
Регистрация: 25.05.2009
Сообщений: 98
1

Проверка подписчиков события в классе потомка

08.05.2012, 15:40. Показов 3565. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые, у меня есть небольшая проблема связанная с тем, что я в C# еще зеленые newbie.
Меня интересует вот какая штука. Я объявил интерфейс и абстрактный класс такого вида:
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2012, 15:40
Ответы с готовыми решениями:

Указатель на потомка в базовом классе.
Мне нужно создать в базовом классе массив указателей на потомки этого класса. Помогите - как это...

Наследование от класса с делегатом. Добавление события у потомка
Здраствуйте. Я в делегатах нуб, так что прошу сильно не пугаться, и, если что, программу пытаюсь...

Почему если делегат события определен в другом классе, то не получается создать генерацию события?
В проекте №1 объявлен делегат для события: delegate void StateEventHandler(State state); А в...

Вызов специфических для потомка функций, не зная класса потомка
Доброго времени суток. Когда-то давно делал работу в C#, а сейчас захотел повторить то же в C++....

1
26 / 26 / 9
Регистрация: 25.05.2009
Сообщений: 98
08.05.2012, 15:54  [ТС] 2
Лучший ответ Сообщение было отмечено Deiron как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
    interface INotificationReciever
    {
        void Update(Object sender);
    }
 
    abstract class NotificationSender
    {
        public delegate void Callback(Object sender);
        public event Callback Notify;
    }
если я пытаюсь сделать следующее, то он ругается на CS0070 (Событие "событие" может присутствовать только в левой части операций += и -= (кроме случая использования в типе "тип"))
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Player : NotificationSender
    {
      //объявления, не важные сейчас
 
        public void MoveTo(Coord aCoord)
        {
            if (!currentCoord.Equals(aCoord))
            {
                previosCoord = new Coord(currentCoord.X, currentCoord.Y);
                currentCoord = new Coord(aCoord.X, aCoord.Y);
                if (Notify != null)
                { 
                    Notify(this);                     
                }
            }
        }
    }
Что кажется мне несколько странным, ведь поле Notify я не переобъявлял и оно должно напрямую наследоваться от класса-родителя
и проблем с проверкой на наличие подписчиков через null быть не должно.

Если же я объявляю NotificationSender, как интерфейс, он в каждый класс, его имплементирующий, добавляет
C#
1
public event NotificationSender.Callback Notify;
, что мне кажется не совсем правильным. Или так и должно быть? Пожалуйста, просветите новичка.

Ps. модераторы, объедините, пожалуйста, с первым постом. По ошибке нажал Ctrl+Enter
0
08.05.2012, 15:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2012, 15:54
Помогаю со студенческими работами здесь

реализация события в классе
привет всем ! пишу одну программулину, встал на проблеме вот на какой, есть 2 класса А и Б,...

События мыши в созданном классе
Добрый день, уважаемые форумчане! Столкнулся со следующей проблемой. Через Opengl рендерю...

Выполнение события в другом классе
Имеется два класса: Основной и GUI. В GUI я создал саму форму. Можно ли как-нибудь выполнить...

Event вызов события в классе
Всем привет. Не судите строго, только учусь. 1. Есть класс который работает с TCP 2. В классе...


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

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