Errore del compilatore CS0071

Aggiornamento: novembre 2007

Messaggio di errore

Per l'implementazione esplicita dell'interfaccia di un evento è necessario utilizzare la sintassi della funzione di accesso agli eventi
An explicit interface implementation of an event must use event accessor syntax

Quando si implementa in modo esplicito un evento dichiarato in un'interfaccia, è necessario indicare manualmente le funzioni di accesso agli eventi add e remove che sono in genere fornite dal compilatore. Il codice della funzione di accesso può connettere l'evento dell'interfaccia a un altro evento nella classe (illustrato di seguito) o al corrispondente tipo delegato. Per ulteriori informazioni, vedere Procedura: implementare gli eventi di interfaccia (Guida per programmatori C#).

Esempio

Il seguente codice di esempio genera l'errore CS0071.

// CS0071.cs
public delegate void MyEvent(object sender);

interface ITest
{
    event MyEvent Clicked;
}

class Test : Itest
{
    event MyEvent ITest.Clicked;  // CS0071

    // try the following code instead
/*
private MyEvent clicked;

    event MyEvent Itest.Clicked
    {
        add
        {
            clicked += value;
        }
        remove
        {
            clicked -= value;
        }
    }
*/
    public static void Main() { }
}