English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans C#, les variables doivent être déclarées avec un type de données. Ce sont des variables de type explicite.
int i = 100;// Variable explicite
C#3.0 a introduit la clé var pour déclarer des variables de niveau méthode sans spécifier explicitement le type de données.
var j = 100; // Variable locale de type implicite
Le compilateur déduit le type de la variable à partir de l'expression de la droite de l'opérateur =, comme ci-dessus, var sera compilé en int.
Le type est déduit à partir de l'expression.
int i = 10; var j = i + 1; // compilé en int
var peut être utilisé pour déclarer n'importe quel type de données intégré, un type utilisateur défini ou une variable de type anonyme. L'exemple suivant montre que le compilateur C# déduit le type en fonction de cette valeur :
static void Main(string[] args) { var i = 10; Console.WriteLine("Type de i est {0}", i.GetType()); var str = "Hello World!!"; Console.WriteLine("Type de str est {0}", str.GetType()); var dbl = 100.50d; Console.WriteLine("Type de dbl est {0}", dbl.GetType()); var isValid = true; Console.WriteLine("Type de isValid est {0}", isValid.GetType()); var ano = new { name = "Steve" }; Console.WriteLine("Type de ano est {0}", ano.GetType()); var arr = new[] { 1, 10, 20, 30 }; Console.WriteLine("Type de arr est {0}", arr.GetType()); var file = new FileInfo("MyFile"); Console.WriteLine("Type de fichier est {0}", file.GetType()); }
Les variables de type implicite doivent être initialisées lors de leur déclaration ; sinon, le compilateur C# affichera un erreur : Il est nécessaire d'initialiser les variables de type implicite.
var i; // Erreur à la compilation : Il est nécessaire d'initialiser les variables de type implicite i = 100;
var ne permet pas de déclarer plusieurs variables dans une seule instruction.
var i = 100, j = 200, k = 300; // Erreur : Impossible de déclarer une variable var dans une seule instruction//Le contenu suivant est également valable var i = 100; var j = 200; var k = 300;
var ne peut pas être utilisé comme paramètre de fonction.
void Display(var param) //Erreur à la compilation { Console.Write(param); }
var peut être utilisé dans des boucles for et foreach.
for(var i = 0; i < 10; i++) { Console.WriteLine(i); }
var peut également être utilisé avec les requêtes LINQ.
// Ensemble de chaînes IList<string> stringList = new List<string>() { "Tutoriels C#", "Tutoriels VB.NET", "Apprendre C"++", "Tutoriels MVC", "Java" }; // Syntaxe de requête LINQ var result = from s in stringList where s.Contains("Tutorials") select s;