Error del compilador CS0070

Actualización: noviembre 2007

Mensaje de error

El evento 'evento' sólo puede aparecer a la izquierda de += o -= (excepto cuando se utiliza desde dentro del tipo 'tipo')
The event 'event' can only appear on the left hand side of += or -= (except when used from within the type 'type')

Un evento sólo puede agregar o quitar referencias fuera de la clase en la que está definido. Para obtener más información, vea Eventos (Guía de programación de C#).

El código siguiente genera el error CS0070:

// CS0070.cs
using System;
public delegate void EventHandler();

public class A
{
   public event EventHandler Click;

   public static void OnClick()
   {
      EventHandler eh;
      A a = new A();
      eh = a.Click;
   }

   public static void Main()
   {
   }
}

public class B
{
   public int Foo ()
   {
      EventHandler eh = new EventHandler(A.OnClick);
      A a = new A();
      eh = a.Click;   // CS0070
      // try the following line instead
      // a.Click += eh;
      return 1;
   }
}