So verlängern Sie die Schnittstelle, indem die Methode Namen?

Gegeben zwei Schnittstellen:

interface I1 {
    int Foo();
}

interface I2 {
    void Foo();
}

Einer Klasse:

class Test : I1, I2 {
    int I1.Foo() {
        Console.WriteLine("I1.Foo");
        return default(int);
    }

    public void Foo() {
        Console.WriteLine("I2.Foo");
    }
}

Wie kann ich verlängern Sie die Schnittstelle I2 mit I1 indem Sie die Methoden mit dem Namen Foo?

Habe ich versucht den folgenden code, aber es kann nicht kompiliert werden:

interface I1 {
    int Foo();
}

interface I2 : I1 {
    void I2.Foo();
} 

class Test : I2 { /* same code */ }
Sie können nicht implementiert nichts in einem interface. Nur Deklarationen erlaubt sind.
Es ist nicht sonderlich hilfreich, ist aber sicherlich erlaubt. Sie wollen vermeiden, mit dem gleichen Namen, das macht es schwer für eine Klasse die Schnittstelle implementieren, und für niemanden, es zu benutzen.

InformationsquelleAutor Omar | 2012-01-22

Schreibe einen Kommentar