(0) exportieren Drucken
Alle erweitern
Erweitern Minimieren
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Compilerfehler CS0686

Der "Accessor"-Accessor kann den Schnittstellenmember "Member" für Typ "Typ" nicht implementieren. Verwenden Sie eine explizite Schnittstellenimplementierung.

Empfohlen: Dieser Fehler kann beim Implementieren einer Schnittstelle auftreten, die Methodennamen enthält, die im Konflikt mit den automatisch generierten Methoden stehen, die mit einer Eigenschaft oder einem Ereignis verknüpft sind. Die get/set-Methoden für Eigenschaften werden als get_property und set_property generiert, und die Methoden zum Hinzufügen/Entfernen von Ereignisse werden als add_event und remove_event generiert. Wenn eine Schnittstelle beide Methoden enthält, tritt ein Konflikt auf. Um diesen Fehler zu vermeiden, implementieren Sie die Methoden mit einer expliziten Schnittstellenimplementierung. Geben Sie dazu die Funktion wie folgt an:

Interface.get_property() { /* */ }
Interface.set_property() { /* */ }

Im folgenden Beispiel wird CS0686 generiert:

// CS0686.cs
interface I
{
    int get_P();
}

class C : I
{
    public int P
    {
        get { return 1; }  // CS0686
    }
}
// But the following is valid:
class D : I
{
    int I.get_P() { return 1; }
    public static void Main() {}
}

Dieser Fehler kann auch beim Deklarieren von Ereignissen auftreten. Das Ereigniskonstrukt generiert die Methoden add_event und remove_event automatisch. Das kann zu einem Konflikt mit den gleichnamigen Methoden in einer Schnittstelle führen, wie im folgenden Beispiel dargestellt:

// CS0686b.cs
using System;

interface I
{
    void add_OnMyEvent(EventHandler e);
}

class C : I
{
    public event EventHandler OnMyEvent
    {
        add { }  // CS0686
        remove { }
    }
}

// Correct (using explicit interface implementation):
class D : I
{
    void I.add_OnMyEvent(EventHandler e) {}
    public static void Main() {}
}

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft