Both programs are using event but one program is using delegate with event. Please tell when to use event only and when to use event and delegate.
Delegate and Event
using System;
public delegate void EventHandler();
class Program
{
public static event EventHandler _show;
static void Main()
{
// Add event handlers to Show event.
_show += new EventHandler(Dog);
_show += new EventHandler(Cat);
_show += new EventHandler(Mouse);
_show += new EventHandler(Mouse);
// Invoke the event.
_show.Invoke();
Console.ReadKey();
}
static void Cat()
{
Console.WriteLine("Cat");
}
static void Dog()
{
Console.WriteLine("Dog");
}
static void Mouse()
{
Console.WriteLine("Mouse");
}
}
/*
Dog
Cat
Mouse
Mouse
*/
Event only
using System;
class MyEvent
{
public event EventHandler SomeEvent; // uses EventHandler delegate
// This is called to fire SomeEvent.
public void OnSomeEvent()
{
if (SomeEvent != null)
SomeEvent(this, EventArgs.Empty);
}
}
public class EventDemo6
{
static void handler(object source, EventArgs arg)
{
Console.WriteLine("Event occurred");
Console.WriteLine("Source is " + source);
}
public static void Main()
{
MyEvent evt = new MyEvent();
// Add handler() to the event list.
evt.SomeEvent += new EventHandler(handler);
// Fire the event.
evt.OnSomeEvent();
Console.ReadKey();
}
}
/*
Event occurred
Source is MyEvent
*/

Sourabh SomaniPosted Dec 20, 2015, 11:21 AM
MahaPosted Dec 19, 2015, 5:50 PM
You say that “Events are declared using delegates”. But in my 2nd program (Event Only) delegate is not used to fire an event. Please explain this.
Sourabh SomaniPosted Nov 23, 2015, 6:30 AM
MahaPosted Nov 22, 2015, 5:38 PM
Sourabh SomaniPosted Nov 22, 2015, 11:07 AM
Sourabh SomaniPosted Nov 22, 2015, 11:02 AM