Partager via


var (Référence C#)

À partir de Visual C# 3.0, les variables déclarées à la portée de la méthode peuvent avoir un type implicite var. Une variable locale implicitement typée est fortement typée comme si vous aviez déclaré le type vous-même, mais le compilateur détermine le type. Les deux déclarations suivantes d'i sont équivalentes fonctionnellement :

var i = 10; // implicitly typed
int i = 10; //explicitly typed

Pour plus d'informations, consultez Variables locales implicitement typées (Guide de programmation C#) et Relations des types dans des opérations de requête LINQ (C#).

Exemple

L'exemple suivant présente deux expressions de requête. Dans la première expression, l'utilisation de var est autorisée mais n'est pas requise, parce que le type du résultat de la requête peut être déclaré explicitement comme un IEnumerable<string>. Toutefois, var doit être utilisé dans la deuxième expression, parce que le résultat est une collection de types anonymes, et le nom de ce type n'est pas accessible sauf par le compilateur. Notez que dans le deuxième exemple, la variable d'itération foreach item doit également être typée implicitement.

// Example #1: var is optional because 
// the select clause specifies a string 
string[] words = { "apple", "strawberry", "grape", "peach", "banana" };
var wordQuery = from word in words
                where word[0] == 'g'
                select word;

// Because each element in the sequence is a string,  
// not an anonymous type, var is optional here also. 
foreach (string s in wordQuery)
{
    Console.WriteLine(s);
}

// Example #2: var is required because 
// the select clause specifies an anonymous type 
var custQuery = from cust in customers
                where cust.City == "Phoenix" 
                select new { cust.Name, cust.Phone };

// var must be used because each item  
// in the sequence is an anonymous type 
foreach (var item in custQuery)
{
    Console.WriteLine("Name={0}, Phone={1}", item.Name, item.Phone);
}

Voir aussi

Référence

Variables locales implicitement typées (Guide de programmation C#)

Concepts

Guide de programmation C#

Autres ressources

Référence C#