Compiler Error CS0072

'event' : cannot override; 'method' is not an event

An event can only override another event. For more information, see Events (C# Programming Guide).

The following sample generates CS0072:

// CS0072.cs
delegate void MyDelegate();

class Test1
{
   public virtual event MyDelegate MyEvent;
   public virtual void VMeth()
   {
   }

   public void FireAway()
   {
      if (MyEvent != null)
         MyEvent();
   }
}

class Test2 : Test1
{
   public override event MyDelegate VMeth   // CS0072
   // uncomment the following lines to resolve
   // public override event MyDelegate MyEvent
   {
      add
      {
         VMeth += value;
         // MyEvent += value;
      }
      remove
      {
         VMeth -= value;
         // MyEvent -= value;
      }
   }

   public static void Main()
   {
   }
}