Ich weiß, dass anonyme Funktionen nicht als Argumente für einen dynamischen Methodenaufruf unterstützt werden. Was sind weitere Einschränkungen des DLR in .NET 4.0?Was sind die Einschränkungen der Dynamic Language Runtime in .NET 4.0?
6
A
Antwort
11
Sie können Verwendung anonyme Funktionen, die Sie gerade sie zuerst werfen müssen:
dynamic list = new List<string>() { "10", "20" };
dynamic converted = list.ConvertAll((Func<string, int>) (x => int.Parse(x)));
Das gleiche gilt für Verfahren Gruppenumwandlungen:
foo.Click += (EventHandler) MyClickHandler;
Andere Einschränkungen ich gestoßen bin so weit:
- Statische Methoden und Konstruktoren können nicht dynamisiert werden c in Bezug auf die Art, aber kann in Bezug auf die Argumente dynamisch sein
- Sie nicht
dynamic
in einer Art Zwang Sie können in einer Schnittstelle für eine nicht
dynamic
als Typargument verwenden können Klassendeklaration, aber man kann es als Basisklasse für eine Typargument verwenden, dhclass Invalid : IEnumerable<dynamic> class Valid : List<dynamic>
Erweiterungsmethoden sind zur Ausführungszeit nicht auffindbar (aber man kann die statische Methode direkt mit dynamischen Argumente aufrufen)
- Es gibt einen Fehler in 4.0b1, so dass Sie nicht von
dynamic[]
zuIEnumerable<dynamic>
konvertieren können - das wird für die Veröffentlichung behoben werden. - Sie können nicht
dynamic
als Basisklasse verwenden
(Beachten Sie, dass diese Einschränkungen von C 4.0 # so viel wie der DLR selbst. Ich habe den Eindruck bekam, das war das, was Sie aber gemeint.)
Verwandte Themen
- 1. Dynamic Assembly Laden in .NET 4.0
- 2. Dynamic Language Runtime und CLR - was ist der Sinn des DLR?
- 3. Was sind die "Kosten" der .NET-Reflektion?
- 4. Welche Sprachen wurden auf der Common Language Runtime implementiert?
- 5. Was sind die Mängel der integrierten BinaryFormatter-basierten .Net-Serialisierung?
- 6. Was sind die Einschränkungen für Lesezeichennamen in Microsoft Word?
- 7. Was ist Microsoft.csharp.dll in .NET 4.0
- 8. Svcutil.exe für .NET 4.0?
- 9. Was sind graue Einschränkungen in der Xcode-Ansichtshierarchie-Debugansicht?
- 10. Was sind die Einschränkungen für Methodennamen in Ruby?
- 11. Abbrechen der Taskverzögerung in .Net 4.0
- 12. Was sind NSubstitute Einschränkungen, speziell vs MOQ?
- 13. Was sind die Unterschiede zwischen @dynamic und @synthesize?
- 14. Wo sind die Grenzen von asp.net Dynamic Data?
- 15. Was sind bei MVC die Einschränkungen für den Controller?
- 16. .net dynamic loading
- 17. .NET Core Dynamic Compilation
- 18. Typabweichung in .NET Framework 4.0
- 19. .NET Runtime 2.0 Fehler
- 20. Was ist der Unterschied zwischen Dynamic Linker und Dynamic Loader?
- 21. TLS 1.2 in .NET Framework 4.0
- 22. Exception.ToString in .NET 4.0 gebrochen?
- 23. enthält .NET 4.5. NET 4.0
- 24. Was macht 'useLegacyV2RuntimeActivationPolicy' in der .NET 4-Konfiguration?
- 25. SecurityAction.RequestMinimum ist in .Net 4.0
- 26. Was ist der Begriff "Substitution" in der Scala Language Specification?
- 27. Wird .NET 4.0 mit Microsoft.Jet.OLEDB.4.0 geliefert?
- 28. Log4Net und .NET 4.0
- 29. Sind eindeutige Einschränkungen für die DB notwendig?
- 30. System.Refelection.Assembly.CreateInstance in .NET 4.0 zerlegt
Großartig, gut, um eine Antwort von Ihnen zu bekommen :) – amazedsaint
Nicht alle Verwendungen von Delegierten brauchen die Besetzung, nicht nur Anons/Lambdas? z.B. in btn.Click + = MyClickHandler; Wenn btn dynamisch ist, aber ein Click-Ereignis hat, funktioniert das nicht. Sie benötigen den Cast um den Namen der MyClickHandler-Methode. –
@Earwicker: Nicht * alle * Verwendungen von Delegaten, aber Sie haben Recht, dass Methodengruppenkonvertierungen ebenfalls eine Umwandlung erfordern. Wird meine Antwort entsprechend aktualisieren. –