Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt impliciet getypte lokale variabelen gebruiken wanneer u wilt dat de compiler het type lokale variabele bepaalt. U moet impliciet getypte lokale variabelen gebruiken om anonieme typen op te slaan, die vaak worden gebruikt in query-expressies. In de volgende voorbeelden ziet u zowel optioneel als vereist gebruik van impliciet getypte lokale variabelen in query's.
Impliciet getypte lokale variabelen worden gedeclareerd met behulp van het var contextueel trefwoord. Zie Impliciet getypte lokale variabelen en impliciet getypte matricesvoor meer informatie.
Voorbeelden
In het volgende voorbeeld ziet u een veelvoorkomend scenario waarin het var
trefwoord is vereist: een query-expressie die een reeks anonieme typen produceert. In dit scenario moeten zowel de queryvariabele als de iteratievariabele in de instructie foreach
impliciet worden getypt met behulp van var
omdat u geen toegang hebt tot een typenaam voor het anonieme type. Zie Anonieme typenvoor meer informatie over anonieme typen.
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);
}
}
In het volgende voorbeeld wordt het var
trefwoord gebruikt in een situatie die vergelijkbaar is, maar waarin het gebruik van var
optioneel is. Omdat student.LastName
een tekenreeks is, retourneert de uitvoering van de query een reeks tekenreeksen. Daarom kan het type queryId
worden gedeclareerd als System.Collections.Generic.IEnumerable<string>
in plaats van var
. Trefwoord var
wordt gebruikt voor het gemak. In het voorbeeld wordt de iteratievariabele in de instructie foreach
expliciet getypt als een tekenreeks, maar in plaats daarvan kan deze worden gedeclareerd met behulp van var
. Omdat het type iteratievariabele geen anoniem type is, is het gebruik van var
een optie, geen vereiste. Vergeet niet dat var
zelf geen type is, maar een instructie aan de compiler om het type af te afleiden en toe te wijzen.
// 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}");
}