Compilerfehler CS0071

Eine explizite Schnittstellenimplementierung eines Ereignisses muss Ereignisaccessorsyntax verwenden.

Wenn Sie ein Ereignis explizit implementieren, das in einer Schnittstelle deklariert wurde, müssen Sie die Ereignisaccessoren add und remove manuell angeben, die normalerweise vom Compiler bereitgestellt werden. Der Accessorcode kann das Schnittstellenereignis mit anderen Ereignissen in Ihrer Klasse verbinden (wie weiter unten in diesem Artikel gezeigt) oder mit seinem eigenen Delegattyp. Weitere Informationen finden Sie unter Vorgehensweise: Implementieren von Schnittstellenereignissen.

Beispiel

Im folgenden Beispiel wird CS0071 generiert:

// 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() { }
}