var (odwołanie w C#)var (C# Reference)

Począwszy od Visual C# 3.0, zmienne, które są zadeklarowane w zakresie metoda może mieć niejawne "type" var.Beginning in Visual C# 3.0, variables that are declared at method scope can have an implicit "type" var. Niejawnie wpisane zmiennej lokalnej jest jednoznacznie określone typy, tak jak w przypadku możesz typu była zadeklarowana, ale kompilator Określa typ.An implicitly typed local variable is strongly typed just as if you had declared the type yourself, but the compiler determines the type. Poniższe dwie deklaracje i są funkcjonalnie równoważne:The following two declarations of i are functionally equivalent:

var i = 10; // Implicitly typed.
int i = 10; // Explicitly typed.

Aby uzyskać więcej informacji, zobacz niejawnie wpisane zmienne lokalne i relacje typu w operacjach zapytań LINQ.For more information, see Implicitly Typed Local Variables and Type Relationships in LINQ Query Operations.

PrzykładExample

Poniższy przykład przedstawia dwa wyrażenia zapytania.The following example shows two query expressions. W pierwszym wyrażeniu użytkowania var jest dozwolone, ale nie jest wymagana, ponieważ typ wyniku zapytania może być jawnie wyrażona jako IEnumerable<string>.In the first expression, the use of var is permitted but is not required, because the type of the query result can be stated explicitly as an IEnumerable<string>. Jednak w drugim wyrażeniu var umożliwia wynik, który ma być kolekcją typów anonimowych, i nazwę tego typu nie jest dostępny z wyjątkiem kompilatorowi sam.However, in the second expression, var allows the result to be a collection of anonymous types, and the name of that type is not accessible except to the compiler itself. Korzystanie z var eliminuje konieczność Utwórz nową klasę dla wyniku.Use of var eliminates the requirement to create a new class for the result. Należy pamiętać, że w przykładzie 2, foreach zmiennej iteracyjnej item również musi być wpisana niejawnie.Note that in Example #2, the foreach iteration variable item must also be implicitly typed.

// Example #1: var is optional when
// 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);
}

Zobacz takżeSee also