Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez utiliser des variables locales implicitement typées chaque fois que vous souhaitez que le compilateur détermine le type d’une variable locale. Vous devez utiliser des variables locales implicitement typées pour stocker des types anonymes, qui sont souvent utilisés dans les expressions de requête. Les exemples suivants illustrent les utilisations facultatives et requises de variables locales implicitement typées dans les requêtes.
Les variables locales implicitement typées sont déclarées à l’aide du mot clé contextuel var . Pour plus d’informations, consultez Variables locales implicitement typées et tableaux implicitement typés.
Exemples
L’exemple suivant montre un scénario courant dans lequel le var
mot clé est requis : expression de requête qui produit une séquence de types anonymes. Dans ce scénario, la variable de requête et la variable d’itération de l’instruction foreach
doivent être implicitement typées à l’aide var
du fait que vous n’avez pas accès à un nom de type pour le type anonyme. Pour plus d’informations sur les types anonymes, consultez Types anonymes.
private static void QueryNames(char firstLetter)
{
// Create the query. Use of var is required because
// the query produces a sequence of anonymous types:
// System.Collections.Generic.IEnumerable<????>.
var studentQuery =
from student in students
where student.FirstName[0] == firstLetter
select new { student.FirstName, student.LastName };
// Execute the query and display the results.
foreach (var anonType in studentQuery)
{
Console.WriteLine("First = {0}, Last = {1}", anonType.FirstName, anonType.LastName);
}
}
L’exemple suivant utilise le var
mot clé dans une situation similaire, mais dans laquelle l’utilisation var
est facultative. Comme student.LastName
il s’agit d’une chaîne, l’exécution de la requête retourne une séquence de chaînes. Par conséquent, le type de queryId
pourrait être déclaré comme System.Collections.Generic.IEnumerable<string>
au lieu de var
. Le mot clé var
est utilisé pour des raisons pratiques. Dans l’exemple, la variable d’itération figurant dans l’instruction foreach
est explicitement typée en tant que chaîne, mais elle aurait pu être déclarée à l’aide de var
. Étant donné que le type de la variable d’itération n’est pas un type anonyme, l’utilisation est var
une option, et non une exigence. N’oubliez pas que `var
` n’est pas un type en soi, mais une instruction au compilateur pour déterminer et affecter le type.
// Variable queryId could be declared by using
// System.Collections.Generic.IEnumerable<string>
// instead of var.
var queryId =
from student in students
where student.Id > 111
select student.LastName;
// Variable str could be declared by using var instead of string.
foreach (string str in queryId)
{
Console.WriteLine($"Last name: {str}");
}