Das Problem des Einzelversands ist vor allem Leuten bekannt, die mit statisch typisierten Sprachen wie Java und C# arbeiten. Die Grundidee ist:Kann der neue dynamische Datentyp "Variable" in .NET 4.0 das Problem der einzelnen/mehreren Methoden in CLR beheben?
Während der Laufzeit-Polymorphismus ermöglicht es uns, den richtigen Methodenaufruf zum Versand nach der Art (Laufzeittyp) von receiver
, zum Beispiel:
IAnimal mything = new Cat();
mything.chop();
Der Methodenaufruf durchgeführt wird, wird nach zum Laufzeittyp von mything
, nämlich Cat
. Dies ist die einzige Dispatch-Funktion (die in Java/C# vorhanden ist).
Nun, wenn Sie nicht nur auf dem Laufzeittyp des Empfängers müssen versenden, sondern auf die Art der (Mehrfach-) Argumente entweder, stehen Sie ein kleines Problem:
public class MyAcceptor {
public void accept (IVisitor vst) {...}
public void accept (EnhancedConcreteVisitor vst) {...}
}
Die zweite Methode nie aufgerufen wird , weil wir in unserem "consumer" -Code nur dazu neigen, verschiedene Arten von Objekten (Besucher in meinem Beispiel) nach ihrem gemeinsamen Supertyp oder Interface zu behandeln.
Deshalb habe ich fragen - weil dynamische Eingabe des Polymorphismus mehrere Dispatch ermöglicht und C# 4.0 hat das dynamische Keyword;)
Was ist das Problem mit dem Versand einzelner/mehrerer Methoden? –
Ich werde meine Frage mit Wikipedia-Link aktualisieren) – Bubba88
Huh, ist die Frage _that_ Way dumm? Oder ich vermisse gerade etwas? – Bubba88