BT
x Votre opinion compte ! Merci de bien vouloir répondre au sondage InfoQ concernant vos habitudes de lecture !

Les futures fonctionnalités de C#

par Jonathan Allen , traduit par Antoine Diekmann le 30 janv. 2014 |

A la conférence NDC 2013 à Londres, Mads Torgersen a évoqué les prochains changements liés au langage C#. Il convient de noter que ce ne sont que des propositions et elles ne garantissent pas l’application dans une version future du langage. Damien Guard a posté un résumé et une brève analyse de ces propositions. Vous trouverez ci-dessous un résumé des évolutions les plus notables.

Les propriétés en lecture seule

Les propriétés implémentées automatiquement et en lecture seule permettront aux développeurs de déclarer les propriétés et leur champ de stockage en une seule et même ligne de code.


public int X { get; } = x;

Import de types statiques

Visual Basic et JavaScript autorisent déjà les développeurs à importer des modules (classe statique en C#) dans un espace de nom. Cela permet de diminuer le code répétitif lors de l’appel à une méthode statique. Nous pourrons ainsi supprimer le code répétitif tel que le préfixe « Math. » lors de l’appel à une méthode de cette dite classe.

Les constructeurs primaires

En plaçant les paramètres directement après le nom de la classe, les développeurs n’auront plus besoin de créer explicitement un constructeur. Cela supprime le code permettant de copier les paramètres du constructeur dans les champs privés associés.


public class Point(int x, int y) {

private int x, y;

}

Propriétés et méthodes d’expressions

Les propriétés d’expressions devraient éliminer drastiquement la quantité de code nécessaire pour la mise en place d’une propriété calculée en lecture seule.


public double Distance => Math.Sqrt((X * X) + (Y * Y));

Les méthodes d’expressions suivront une logique équivalente et supporteront bien évidemment le passage de paramètres.

Notez que les propriétés paramétrées n’entrent pas encore en considération. Cela reste seulement une fonctionnalité de Visual Basic et cela n’est pas envisagé à court terme pour C#.

Les paramètres de fonctions

De nos jours, la plupart des développeurs n’utilisent pas de tableaux sauf quand ils ont besoin d’utiliser le mot-clé « params ». Ainsi, l’une des propositions est de mettre à jour l’interface IEnumerable pour supporter le passage de paramètres. Néanmoins, d’autres langages tels que Visual Basic auraient aussi besoin de se mettre à jour pour supporter cette fonctionnalité.

Une autre proposition est de permettre aux variables locales d’être déclarées lors de l’utilisation du mot-clé out de la manière suivante :


int.TryParse("123", out int x);

Propagation et absence de valeur

Quand vous travaillez avec des « messy data », les développeurs doivent souvent écrire une série de vérifications avant de lire une propriété ou d’invoquer une méthode. La syntaxe ?. éliminerait cette condition en invoquant une méthode si la valeur précédente n’est pas nulle.


var bestValue = points?.FirstOrDefault()?.X;

Dans ce cas, si « points » ou l’instruction « points.FirstOrDefault()» renvoie une valeur nulle, alors .X est ignoré et la valeur nulle est retournée. Ce code peut être chainé avec l’opérateur ?? afin de fournir une valeur par défaut si besoin.


var bestValue = points?.FirstOrDefault()?.X ?? -1;

Cette approche existe déjà dans les langages tels qu’Objective-C et Smalltalk est peut être assimilé comme un problème et non une solution puisqu’il peut cacher les exceptions de type NullReferenceException.

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Contenu Éducatif

Rien ne serait possible sans le soutien et la confiance de nos Sponsors Fondateurs:

AppDynamics   CloudBees   Microsoft   Zenika
Feedback Général
Bugs
Publicité
Éditorial
InfoQ.com et tous les contenus sont copyright © 2006-2014 C4Media Inc. InfoQ.com est hébergé chez Contegix, le meilleur ISP avec lequel nous ayons travaillé.
Politique de confidentialité
BT