Translate

dimanche 16 août 2015

Le type var ou la magie du CLR !

Le type var ?

"var" est un type implicite utilisé pour la déclaration d'une variable.

Mais a quoi sert ce type ?

Il permet simplement de déclarer une variable sans avoir à se soucier lors de la déclaration du type explicite. Il permet également une lecture simplifiée du code.

Euh... et avec un exemple ?

Voici un petit exemple qui montre qu'on peut facilement déclarer des variables sans avoir à ce soucier du type :

public class TestVar
{
   public static void Main()
   {
      var testVarString = "toto";
      var testVarInt = 5;
   }
}

Ce code équivaut à écrire :

public class TestVar
{
   public static void Main()
   {
      string testVarString = "toto";
      int testVarInt = 5;
   }
}

Comment ça marche ? C'est magique ?

Pour le développeur presque car c'est le compilateur qui fait tout le boulot !
Au moment de la compilation le compilateur (CLR) détermine le type réel et convertit le type var par celui déterminé. C'est transparent pour le développeur. Cela s'appelle l'inférence de type.
Cependant pour utiliser le type var il est obligatoire d'initialiser la variable en lui attribuant par exemple une valeur au moment de sa déclaration ! Autrement le compilateur vous retournera une belle erreur :
"Implicitly-typed local variables must be initialized"