Warum wurde C # so entworfen?
So wie ich es verstehe, beschreibt eine Schnittstelle nur das Verhalten und dient dem Zweck, eine vertragliche Verpflichtung für Klassen zu beschreiben, die die Schnittstelle implementieren, dass ein bestimmtes Verhalten implementiert wird.
Wenn Klassen dieses Verhalten in einer gemeinsamen Methode implementieren möchten, warum sollten sie es nicht tun?
Hier ist ein Beispiel für das, was ich vorhabe:
// These items will be displayed in a list on the screen.
public interface IListItem {
string ScreenName();
...
}
public class Animal: IListItem {
// All animals will be called "Animal".
public static string ScreenName() {
return "Animal";
}
....
}
public class Person: IListItem {
private string name;
// All persons will be called by their individual names.
public string ScreenName() {
return name;
}
....
}
IListItem.ScreenName() => ScreenName()
(unter Verwendung der C # 7-Syntax) implementiert die Schnittstellenmethode explizit durch Aufrufen der statischen Methode. Die Dinge werden jedoch hässlich, wenn Sie die Vererbung hinzufügen (Sie müssen die Schnittstelle neu implementieren)