var (odwołanie w C#)

Począwszy od programu Visual C# 3.0, zmienne, które są zadeklarowane na zakres metody mogą mieć typu niejawny var.Zmienną niejawnie określonego dla lokalnych zdecydowanie jest wpisana, tak jak gdyby typu miał zadeklarowane samodzielnie, ale kompilator określa typ.Następujące dwie deklaracje i są funkcjonalnie równoważne:

var i = 10; // implicitly typed
int i = 10; //explicitly typed

Aby uzyskać więcej informacji, zobacz Niejawnie wpisane zmienne lokalne (Przewodnik programowania w języku C#) i Relacje typu w operacjach kwerend LINQ (C#).

Przykład

W poniższym przykładzie przedstawiono dwa wyrażenia w kwerendzie.W pierwszym wyrażeniu wykorzystanie var jest dozwolone, ale nie jest wymagane, ponieważ typ wyniku kwerendy można jawnie podany jako IEnumerable<string>.Jednakże w drugie wyrażenie var musi używane, ponieważ wynik jest kolekcją typów anonimowe i nazwa tego typu nie jest dostępny, z wyjątkiem dla samego kompilatora.Należy zauważyć, że w przykładzie # 2, foreach Zmienna iteracji item również musi być wpisana niejawnie.

// 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);
}

Zobacz też

Informacje

Niejawnie wpisane zmienne lokalne (Przewodnik programowania w języku C#)

Koncepcje

Przewodnik programowania w języku C#

Inne zasoby

Odwołanie w C#