Я новичок в C# и программировании в целом и пытаюсь выяснить, как использовать события. Раньше я программировал ActionScript3, и там события представляют собой специальный класс, который вы наследуете, если вы хотите создать свои собственные события, а затем это событие может быть вызвано любым другим классом.Вызывающее событие другого класса
С # Я пытался сделать что-то подобное, например, так:
public class EventManager
{
public delegate void TempDelegate();
public static event TempDelegate eSomeEvent;
}
public class SomeOtherClass
{
//doing some stuff, then:
if (EventManager.eSomeEvent != null)
{
EventManager.eSomeEvent();
}
}
Это дает мне CS0070 ошибки компилятора: события «EventManager.eSomeEvent» может появиться только на левой стороне + = или - = (кроме случаев, когда они используются внутри типа EventManager)
Информация об этой ошибке выше на msdn указывает, что я должен использовать +=
вместо того, чтобы пытаться вызвать событие, но я действительно не понимаю этого , Я не пытаюсь подписаться на что-либо от SomeOtherClass
делегату мероприятия, я просто пытаюсь вызвать это событие, чтобы он начал выполнять те функции, которые уже подписаны на это событие.
Так можно ли это сделать так? Если нет, можно ли вообще вызвать событие из одного класса из другого класса? Я просто хочу повторно использовать определенные события в своих классах, а не создавать много похожих в нескольких классах.
Любые советы с этим были бы очень благодарны!
Я немного неясно. Вы хотите пузырить события из одного класса и передавать их через другой класс (который имеет этот класс)? Или вы просто пытаетесь копировать события через несколько классов (например, библиотеку событий)? – SQLMason
http://stackoverflow.com/questions/756237/c-raising-an-inherited-event – SQLMason