Ziel C hat Protokoll, das die Äquivalenz der Schnittstelle in C# ist. Trotzdem setzt C# die Implementierung aller Methoden wie in Objective C 1.0 durch.Wie erhält man OPTIONALE Schnittstellenmethodenimplementierung in C# wie in Objective C 2.0?
Aber in Objective C 2.0 ist es jetzt möglich, eine Methode im Protokoll als optional zu markieren. Ermöglicht C# dies oder wird dies in Zukunft möglich sein? In der Theorie ist das Erzwingen der Zweck der Schnittstelle, aber in der Praxis habe ich die Last dieser harten Regel in einem komplexen Projekt erfahren: Sie müssen viele Interfaces erstellen, die schwer zu managen sind, Design oder Refactor zu verwalten. Für mich macht diese Entwicklung von Objective C 1.0 zu Objective C 2.0 wirklich Sinn.
Da Microsoft im Allgemeinen pragmatisch ist, wäre es großartig, wenn sie dies auch tun könnten.
Nitpick: C# -Schnittstellen entsprechen chronologisch den Objective-C-Protokollen, nicht umgekehrt. Objective-C war der Haupteinfluss auf das Design von Java (in der Tat, als NeXTStep pleite ging, migrierten mehrere Mitglieder des Objective-C-Designteams zu Sun), und Protokolle (in Java als Interfaces bezeichnet) waren eine von vielen Dinge genommen. C# hat sie natürlich von Java bekommen. Objective-C hat sie von Smalltalk erhalten, aber in Smalltalk sind sie nur eine Dokumentationskonvention, während sie in Objective-C, Java und C# ein echtes Sprachmerkmal sind. Und damit endet die heutige Geschichtsstunde. –
Dann wäre es nicht mehr "Interface". – Xaqron
Java kann von Objective C inspiriert sein, aber nicht von dem wesentlichen Teil, der Smalltalk Messaging ist. C# ist Java sehr ähnlich, da Microsoft aus rechtlichen Gründen Java für Windows Platform nicht ändern konnte. – user310291