Condividi tramite


var (Riferimenti per C#)

A partire da Visual C# 3.0, le variabili dichiarate in corrispondenza dell'ambito del metodo possono contenere un oggetto var di tipo implicito. Una variabile locale implicitamente tipizzata è fortemente tipizzata come se si fosse dichiarato il tipo stesso, ma il compilatore determina il tipo. Le due dichiarazioni seguenti di i sono funzionalmente equivalenti:

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

Per ulteriori informazioni, vedere Variabili locali tipizzate in modo implicito (Guida per programmatori C#) e Relazioni tra i tipi nelle operazioni di query LINQ (C#).

Esempio

Nell'esempio seguente vengono illustrate due espressioni di query. Nella prima espressione, l'utilizzo di var è consentito, ma non necessario, perché il tipo del risultato della query può essere dichiarato in modo esplicito come IEnumerable<string>. Tuttavia, nella seconda espressione, var deve essere utilizzato, perché il risultato è un insieme di tipi anonimi e il nome di tale tipo non è accessibile tranne che al compilatore stesso. Si noti che nell'esempio n. 2, anche la variabile di iterazione foreachitem deve essere implicitamente tipizzata.

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

Vedere anche

Riferimenti

Variabili locali tipizzate in modo implicito (Guida per programmatori C#)

Concetti

Guida per programmatori C#

Altre risorse

Riferimenti per C#