C#4 : un typage dynamique des objets

Décryptage avec codes à l'appui des principales nouveautés des versions 4 et 5 du langage de développement orienté objets de Microsoft, avec Didier Girard, directeur de l'innovation de Sfeir.

Article rédigé par Didier Girard, directeur de l'innovation de Sfeir.

La principale innovation de C#4 réside dans les objets typés dynamiquement. Avec ce dispositif, les objets ne sont plus typés durant la phase de compilation, mais durant la phase d'exécution.

Cette fonctionnalité, directement issue des langages dynamiques, peut considérablement simplifier des cas précis de développement, comme illustré ci-dessous. En revanche, elle fragilisera la qualité des développements en amenant des "erreurs" qui ne pourront être détectées qu'en phase d'exécution au travers de bugs.

1
Invocation, d'une méthode Add de manière classique © Microsoft
2
Invocation, d'une méthode Add en utilisation la réflexion et avec des objets non typés © Microsoft
3
Invocation, d'une méthode Add en utilisant le typage dynamique de C# 4. La résolution de type, le fait que "10" et "20" sont des entiers se fera à l'exécution © Microsoft

Paramètres optionnels

Il est maintenant possible d'avoir des paramètres optionnels. Cette nouveauté, attendue depuis un certain temps, va simplifier l'écriture de beaucoup de code. Voici un exemple de son utilisation :

5
Code source © Microsoft


On déclare une méthode qui a un paramètre fixe (path) et trois paramètres optionnels (encoding, detectEncoding et bufferSize). Il est possible de déduire que ces paramètres sont optionnels car ils ont une valeur par défaut, ce qui permettra de les initialiser s'ils ne sont pas présents lors de l'appel de la méthode.

Une fois cette méthode déclarée, il est possible de l'appeler de différentes manières :

6
Code source © Microsoft
7
Code source © Microsoft
8
Code source © Microsoft

Après C# 4

La nouveauté annoncée pour l'après C# 4 concernera la possibilité d'offrir une API sur le compilateur, ce qui permettra de compiler et d'exécuter du code à la volée. Ceci pourrait être intéressant pour faire de la configuration logicielle : Les fichiers de configuration ne seraient plus des fichiers statiques, mais des programmes C#.

Article rédigé par Didier Girard, directeur de l'innovation de Sfeir.