Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Implicit módon beírt helyi változókat akkor használhat, ha azt szeretné, hogy a fordító határozza meg a helyi változó típusát. A névtelen típusok tárolásához implicit módon beírt helyi változókat kell használnia, amelyeket gyakran használnak lekérdezési kifejezésekben. Az alábbi példák az implicit módon beírt helyi változók opcionális és kötelező használatát is szemléltetik a lekérdezésekben.
Az implicit módon beírt helyi változók deklarálása a var környezeti kulcsszóval történik. További információ: Implicit módon beírt helyi változók és implicit módon beírt tömbök.
Példák
Az alábbi példa egy gyakori forgatókönyvet mutat be, amelyben a var kulcsszóra van szükség: egy lekérdezési kifejezésre, amely névtelen típusú sorozatot hoz létre. Ebben a forgatókönyvben a lekérdezési változót és az foreach utasítás iterációs változót is implicit módon kell begépelni var használatával, mert nem fér hozzá a névtelen típus típusnevéhez. A névtelen típusokkal kapcsolatos további információkért lásd: Névtelen típusok.
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);
}
}
Az alábbi példa a var kulcsszót használja hasonló helyzetben, de a var használata nem kötelező. Mivel student.LastName egy sztring, a lekérdezés végrehajtása sztringsorozatot ad vissza. Ezért a queryId típusa System.Collections.Generic.IEnumerable<string>helyett var deklarálható. A kulcsszó var a kényelem érdekében használatos. A példában a foreach utasítás iterációs változója explicit módon sztringként van begépelve, de ehelyett varhasználatával deklarálható. Mivel az iterációs változó típusa nem névtelen típus, a var használata lehetőség, nem követelmény. Ne feledje, hogy var maga nem típus, hanem utasítás a fordítónak a típus kikövetkeztetésére és hozzárendelésére.
// 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}");
}