var (C#-Referenz)

Variablen, die im Methodenbereich deklariert werden, können ab Visual C# 3.0 den impliziten Typ var aufweisen. Eine implizit typisierte lokale Variable ist stark typisiert, so als hätten Sie den Typ selbst deklariert. In diesem Fall hat jedoch der Compiler den Typ bestimmt. Die folgenden beiden Deklarationen von i sind funktional äquivalent:

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

Weitere Informationen finden Sie unter Implizit typisierte lokale Variablen (C#-Programmierhandbuch) und Typbeziehungen in LINQ-Abfragevorgängen (C#).

Beispiel

Im folgenden Beispiel werden zwei Abfrageausdrücke veranschaulicht. Im ersten Ausdruck ist der Gebrauch von var zulässig, jedoch nicht erforderlich, da der Typ des Abfrageergebnisses explizit als IEnumerable<string> angegeben werden kann. Im zweiten Ausdruck hingegen muss var verwendet werden, da das Ergebnis eine Auflistung von anonymen Typen ist und der Name des Typs nur für den Compiler selbst zugänglich ist. Beachten Sie, dass in Beispiel 2 die foreach-Iterationsvariable item ebenfalls 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

Referenz

Implizit typisierte lokale Variablen (C#-Programmierhandbuch)

Konzepte

C#-Programmierhandbuch

Weitere Ressourcen

C#-Referenz