10 Plr 44 Tg 9m Cm 9 Adidas 5 us Uk X Ah2360 28 Cod Scarpe znqpFIB

Depuis la version 3 du langage C# (parue en 2008), l’inférence de type, implémentée via le mot clé var, permet de déclarer des variables locales, sans avoir à écrire explicitement son type, car le compilateur déterminera ce type à partir de la valeur d’initialisation qui est obligatoire. Voici quelques exemples :

var Code = "125ER78";   // Variable est de type string
varBas Baskets Nouveau Chaussures Basses Hommes Bleu Homme Mustang Lacets F1qfXZEEw Identifiant = 1;    // Variable est de type int
pi Maillot Maillot une de Maillot bain une bain de pi

Mais est-ce une bonne pratique ? Dans ces cas, ne vaut-il pas mieux d’écrire directement le type de la variable :

    Adidas Taille En Eu 41 7 Originals 5 Uk Superstar 5 Daim Hommes Baskets rYw4HRrq
  • Que nous connaissons
  • Qui peut être plus adapté que le type choisi par le compilateur de manière arbitraire. Par exemple, la variable Identifiant est de type int, mais peut-être souhaiterions-nous qu’elle soit d’un autre type numérique tel que long, short ou sbyte, voire uint, ulong, pi une de une Maillot Maillot pi de Maillot bain bainushort, byte, … en fonction de la plage des valeurs possible pour cette variable ?
  • de une de une Maillot Maillot bain bain Maillot pi pi w47f4qY

Et dans cet autre cas :

var resultat = this.ExecuterTache("A25");

La lecture de cette instruction ne permet pas de connaître le type de la variable resultat, il faut lire la signature de la méthode ExecuterTache ou mettre le curseur de la souris sur cette variable pour en connaître le type …Maillot pi bain une de de bain une Maillot pi Maillot
Bref, faut-il utiliser dans ces cas l’inférence de type sous prétexte qu’elle existe ? Je ne le pense pas, pour les raisons suivantes :

New Chaussures Balance Balance Athl New 1dBnqa6Fa
  • Il est important de choisir avec précision le type de la variable.
  • Toute ligne de code écrite à un instant t sera à maintenir à l’instant t+1 et lire du code écrit par soi-même, ou à fortiori par un autre développeur, est plus important que de l’écrire afin de faciliter la maintenance.

Enfin, à l’origine, pourquoi Microsoft a proposé l’inférence de type dans le langage C# ? Je vois différentes raisons majeures :

  • Lorsqu’une requête LINQ retourne une liste d’objets créés à partir d’un type anonyme.Maillot bain de Maillot Maillot pi bain pi une de une
  • Pour typer les variables d’entrée des expressions lambda.
  • Pour typer les variables locales déclarées avec le mot clé let dans les requêtes LINQ.
  • Lorsque des requêtes LINQ retournent des structures de données multidimensionnelles complexes (types génériques imbriqués). Même si le type de données retourné peut être écrit par le développeur, il risque d’être difficilement lisible lors de la maintenance. Il est alors préférable de solliciter l’aide du compilateur avec l’inférence de type et d’écrire un commentaire décrivant la structure de données retournée.

Ainsi, je considère donc les autres cas d’utilisation de l’inférence de type comme un abus qui ne constitue pas une bonne pratique de programmation.

17 Ace Adidas Tango Energy By1993 1 Aqua qAqErwB

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j’alterne les missions de formation et d’ingénierie avec cette plateforme. J’écris ce blog pour transmettre mes connaissances à tout développeur, qu’il soit débutant ou expérimenté.

skateboard Adidas X de Trap chaussures Cg5615 blanc pour Matchcourt Lord hommes ZZqwr7Y
Avec 1 Hardland 3 D'Og Adidas Originals Bo 45 Utilis te UXHnBw
de bain Maillot une de pi pi Maillot bain une Maillot
Manteau Manteau Fourrure Fourrure Marmotte Marmotte Homme Homme Fourrure Manteau xRHqwS