var (C#-Referenz)

Ab Visual Studio C# 3.0 können Variablen, die im Methodenbereich deklariert wurden, den impliziten „Typ“ var haben. Eine implizit typisierte lokale Variable ist stark typisiert, als hätten Sie den Typ selbst deklariert. Tatsächlich legt der Compiler den Typ fest. Die folgenden beiden i-Aktivitäten sind funktional äquivalent:

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

Weitere Informationen finden Sie unter Implizit typisierte lokale Variablen und Type relationships in LINQ query operations (Typbeziehungen in LINQ-Abfragevorgängen).

Beispiel

Im folgenden Beispiel werden zwei Abfrageausdrücke gezeigt. Im ersten Ausdruck in das Verwenden von var erlaubt aber nicht erforderlich, da der Typ des Abfrageergebnisses explizit als IEnumerable<string> angegeben werden kann. Im zweiten Ausdruck muss var allerdings verwendet werden, weil das Ergebnis eine Auflistung von anonymen Typen ist, und auf die Namen dieser Typen nicht zugegriffen werden kann. Allein der Compiler kann darauf zugreifen. Beachten Sie, dass die foreach-Iterationsvariable item im zweiten Beispiel auch implizit typisiert sein muss.

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

Siehe auch

C#-Referenz
C#-Programmierhandbuch
Implizit typisierte lokale Variablen