Cette présentation fait partie des sessions de la PDC de cette année qu’il faut absolument
visionner. Présenté par un des pères du C# (Anders Hejlsberg), l’ensemble des nouveautés
qui seront proposés par la version 4 de C# qui sera proposé avec Visual Studio 2010
sont abordées.
Premier constat rassurant, les changements sont moins nombreux et moins importants
que ceux introduits au passage de C# 2 à C# 3. L’essentiel de ces nouveautés concerne
:
-
l’ajout d’un mot clé dynamic qui permet de manipuler des types à la manière
des langages à typage dynamique c’est à dire que nous avons la possibilité d’indiquer
au compilateur de ne pas s’occuper de savoir si une méthode Foo est présente sur le
type manipulé avec le fameux mot-clé, mais d’uniquement tenter de l’appeler lors de
l’exécution. L’intérêt de cette nouveauté est de permettre une meilleure interopérabilité
avec les langages dynamiques présents dans le monde .net tels que Iron Ruby mais également
de manipuler de manière plus simple les objets COM. Bien entendu le but n’est pas
transformer le langage C# en langage dynamique mais de lui offrir la possibilité de
profiter de certains avantages de cette gestion des types. L’interface IDynamicObject
est également ajouté afin de définir directement en C# des objets à manipuler de manière
“dynamique”. A noter que le Visual Basic dispose depuis la version 4 d’une partie
de cette fonctionnalité grâce à l’implémentation du latebinding qui permettait d’appeler
les méthodes que l’on souhaitait sur un simple type Object. -
le support des paramètres optionnels et nommés également supportés par Visual Basic
depuis bien longtemps. Je rassure de suite les puristes de la POO l’objectif n’est
pas de remplacer les surcharges de méthodes mais de simplifier l’interop avec les
composants COM et les API basés sur cette technologie comme… Microsoft Office. Fini
le cauchemard des ref missing… -
Le support de la co-variance et de la contra-variance au niveau des méthodes. La co-variance
étant déjà disponible au niveau des délégués depuis C# 2.
TL16 The Future of C# (Note:5/5)