Bonjour, l’autre jour je me suis aperçu qu’on pouvait utiliser certaines syntaxe introduites avec C# 3.0 en 2.0.
Je travaille chez un éditeur logiciel ayant des client sous Windows 2000 et donc ne pouvant installer .Net 3.0 et supérieur sur leur machine, nous devons donc rester en 2.0 en attendant que la majorité des clients soit passé sous 2003/XP et supérieur. A partir de la né une grande frustration devant l’impossibilité de jouer avec C#3.0 et .Net 3 et 3.5.
On peut néanmoins trouver une maigre consolation en utilisant Visual Studio 2008.
Trêve de blabla passons directement à un exemple :
Pour cela nous allons créer une solution sous Visual Studio 2008 en .Net Framework 2.0, une application console suffira.
Première fonctionnalité: la possibilité de générer les variables membre privées automatiquement à partir d’un accesseur dans une classe. Très pratique lorsqu’il n’y a pas d’opération spécifique à réaliser sur un get ou un set.
8 class Sugar
9 {
10 public int Weight { get; set; }
11 }
Deuxième fonctionnalité : l’initialisation d’instance de classe, plus besoin de surcharger le constructeur d’une classe, avec la syntaxe suivante vous pouvez initialiser les membres d’une classe dans le constructeur.
Troisième fonctionnalité qui dérive de la première, l’initialisation de collection :
31 List<Sugar> lstSug = new List<Sugar>
32 {
33 new Sugar { Name = "Suggy", Weight = 100 },
34 new Sugar { Name = "SuggO", Weight = 110 },
35 new Sugar { Name = "SuggA", Weight = 130 },
36 new Sugar { Name = "SuggU", Weight = 150 }
37 };
Quatrième fonctionnalité : l’inférance de type avec le mot clé var
31 var lstSug = new List<Sugar>
32 {
33 new Sugar { Name = "Suggy", Weight = 100 },
34 new Sugar { Name = "SuggO", Weight = 110 },
35 new Sugar { Name = "SuggA", Weight = 130 },
36 new Sugar { Name = "SuggU", Weight = 150 }
37 };
Il nous manque donc les méthodes d’extensions, les lambdas expressions, déja pas mal. Bien évidemment ce code ne pourra compiler sur VisualStudio 2005 mais il s’exécutera sur des machines un peu ancienne.
David Verrière