Ich sehe immer wieder die Phrase "Duck Typisierung", und lief sogar über ein oder zwei Codebeispiele. Ich bin viel zu
faul
beschäftigt, um meine eigene Forschung zu tun, kann mir jemand sagen, kurz:Wie unterscheidet sich die Eingabe von Ente von der alten 'Variante' und/oder den Schnittstellen?
- der Unterschied zwischen einem ‚Ente Typ‘ und einem alten skool ‚Variante Typ‘, und
- bieten ein Beispiel dafür, wo ich Ente Typisierung über Variante Typisierung bevorzugen könnte, und
- bieten ein Beispiel für etwas, das ich haben würde Ente Typisierung verwenden, um zu erreichen?
meine ich nicht Geflügel scheinen durch Zweifel an der Macht dieses ‚neuen‘ konstruieren, und ich bin nicht das Problem ducken durch die Weigerung, die Forschung zu tun, aber ich bin quacking up Bei all dem Flock-Hype, den ich in letzter Zeit gesehen habe. Es sieht aus wie keine Eingabe (aka dynamische Eingabe) zu mir, so sehe ich nicht sofort die Vorteile.
Nachtrag: Danke für die bisherigen Beispiele. Es scheint mir, dass die Verwendung von etwas wie "O-> can (Blah)" einer Reflektionssuche gleichkommt (was wahrscheinlich nicht billig ist) und/oder ungefähr dasselbe ist wie das Sprechen des Compilers (O is IBlah) in der Lage sein, nach Ihnen zu suchen, aber Letzteres hat den Vorteil, dass Sie meine IBlah-Schnittstelle von Ihrer IBlah-Schnittstelle unterscheiden, während die anderen beiden dies nicht tun. Zugegeben, eine Menge von kleinen Schnittstellen für jede Methode zu schweben würde chaotisch werden, aber dann wieder so für eine Vielzahl von einzelnen Methoden zu überprüfen ...
... so wieder ich bin gerade nicht bekommen es. Ist es eine fantastische Zeitersparnis oder das gleiche alte Ding in einem brandneuen Sack? Wo ist das Beispiel, dass erfordert Ente Typisierung?
Ich denke, Sie meinen nicht "Variante", sondern eher spät verbindlich durch IDispatch-Schnittstelle. – wasker
schön gemacht! Sehr schön gemacht. Danke, dass du mich heute lächeln lässt. – Tim
Arbeitet etwas, um den Enten das Tippen beizubringen, aber die Produktivität lohnt sich sehr ;-) – Rudiger