Ich habe diese Klasse/Schnittstellendefinitionen in C#C# geschützte Methode geerbt Schnittstelle implementieren
public class FooBase {
...
protected bool Bar() { ... }
...
}
public interface IBar {
bool Bar();
}
Jetzt möchte ich eine Klasse Foo1 von FooBase abgeleitet erstellen IBar Umsetzung:
public class Foo1 : FooBase, IBar {
}
Gibt es eine Klasse Deklaration Magie, dass der Compiler die geerbte geschützte Methode als die öffentlich zugängliche Implementierung der Schnittstelle verwendet?
Natürlich ein Foo1 Methode
bool IBar.Bar()
{
return base.Bar();
}
funktioniert. Ich bin nur neugierig, ob es eine Abkürzung gibt;)
Das Ausschließen dieser Methode führt zu einem Compiler-Fehler: Foo1 implementiert keine Schnittstelle Mitglied IBar.Bar(). FooBase.Bar() ist entweder statisch, nicht öffentlich oder hat den falschen Rückgabetyp.
Erläuterung: Ich teile Codevererbung (Klassenhierarchie) und Featureimplementierung (Schnittstellen). Daher ist der Zugriff auf gemeinsamen (vererbten) Code für Klassen, die dieselbe Schnittstelle implementieren, sehr praktisch.