Je sais que les fonctions anonymes ne sont pas supportées comme arguments pour un appel de méthode dynamique. Quelles sont les autres limitations de DLR dans .NET 4.0?Quelles sont les limitations de Dynamic Language Runtime dans .NET 4.0?
6
A
Répondre
11
Vous peut utiliser les fonctions anonymes, il vous suffit de les jeter d'abord:
dynamic list = new List<string>() { "10", "20" };
dynamic converted = list.ConvertAll((Func<string, int>) (x => int.Parse(x)));
en est de même des conversions de groupe méthode:
foo.Click += (EventHandler) MyClickHandler;
D'autres restrictions que j'ai rencontré si loin:
- Les méthodes statiques et les constructeurs ne peuvent pas être dynami c en termes de type, mais peut être dynamique en fonction des arguments
- Vous ne pouvez pas utiliser
dynamic
dans une contrainte de type Vous ne pouvez pas utiliser
dynamic
comme un argument de type dans une interface pour une déclaration de classe, mais vous pouvez l'utiliser comme un argument de type pour une classe de base, à savoirclass Invalid : IEnumerable<dynamic> class Valid : List<dynamic>
les méthodes d'extension ne sont pas découvrable au moment de l'exécution (mais vous pouvez appeler la méthode statique directement avec des arguments dynamiques)
- Il ya un bug dans 4.0b1 tel que vous ne pouvez pas convertir de
dynamic[]
àIEnumerable<dynamic>
- qui sera corrigé pour la version. - Vous ne pouvez pas utiliser
dynamic
comme une classe de base
(Notez que ce sont les limites de 4.0 C#, autant que du DLR lui-même. J'ai eu l'impression que est ce que vous vouliez dire bien.)
Questions connexes
- 1. Documentation pour Dynamic Language Runtime?
- 2. Quelles langues ont été implémentées dans Common Language Runtime?
- 3. Dans MVC, quelles sont les limitations du contrôleur?
- 4. Quelles fonctionnalités C# 4.0 peuvent être utilisées tout en ciblant le runtime .NET 3.5?
- 5. Quelles sont les chaînes vraiment dans .NET?
- 6. Quelles sont les limitations pour les noms de signets dans Microsoft Word?
- 7. Quelles sont les limitations des types de caractères primitifs dans D?
- 8. MMC .Net Runtime Version
- 9. Quelles sont les limitations de la méthode PyObject .__ tojava__ de jython?
- 10. Que faudra-t-il pour ajouter le support d'Objective-C au Common Language Runtime .NET?
- 11. Quelles sont les limites du refactoring?
- 12. Limitations de la mémoire .NET
- 13. Quelles informations ont été publiées concernant .NET Framework 4.0?
- 14. Quelles seront les nouvelles fonctionnalités disponibles dans ASP.Net 4.0?
- 15. Comment référencer l'assembly .NET 4.0 dans les projets .NET 3.5
- 16. Comment le futur mot-clé 'dynamic' dans .net 4.0 va-t-il améliorer ma vie?
- 17. Intégration .Net Runtime
- 18. quelles sont les phases dans le processus de construction
- 19. .NET 4.0 - Le mot-clé "dynamique"
- 20. Erreur .NET Runtime 2.0 dans un service
- 21. Quelles sont les modifications empilables?
- 22. Limitations de ScriptManager dans les appels AJAX
- 23. gridview modifiable - quelles sont les bases?
- 24. Caractéristiques confirmées de .NET 4.0?
- 25. Silverlight Runtime Error 1001
- 26. Quelles sont les commandes importantes de Ruby?
- 27. Quelles sont les fonctionnalités cachées de Maven2?
- 28. Les dll standard .Net 2 sont-elles compatibles avec le runtime Silverlight 2.0?
- 29. .net framework 4.0 documentation
- 30. .NET 4.0 et versions antérieures
Très bien, bon d'avoir une réponse de votre part :) – amazedsaint
Les délégués n'ont-ils pas tous besoin de la distribution, pas seulement des anons/lambdas? par exemple. dans btn.Click + = MyClickHandler; si btn est dynamique mais possède un événement Click, cela ne fonctionnera pas. Vous avez besoin de la distribution autour du nom de la méthode MyClickHandler. –
@Earwicker: Pas * toutes * les utilisations des délégués, mais vous avez raison de dire que les conversions de groupes de méthodes nécessitent également une conversion. Mettra à jour ma réponse en conséquence. –