var (Référence C#)

Mise à jour : novembre 2007

Les variables déclarées à la portée de la méthode peuvent avoir un var de type implicite. 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).

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 foreachitem 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

Concepts

Guide de programmation C#

Référence

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

Autres ressources

Référence C#