Share via


var (Referência de C#)

A partir do Visual C# 3.0, variáveis que são declaradas no escopo do método podem ter um tipo implícito var. Uma variável local digitada implicitamente tem rigidez de tipos como se você tivesse declarado o tipo, mas o compilador determina o tipo. As seguintes duas declarações de i são funcionalmente equivalentes:

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

Para obter mais informações, consulte Variáveis locais de tipo implícito (Guia de Programação em C#) e Relacionamentos de tipo em operações de consulta LINQ (C#).

Exemplo

O exemplo a seguir mostra duas expressões de consulta. Na primeira expressão, o uso de var é permitido, mas não é necessária, pois o tipo de resultado da consulta pode ser declarado explicitamente, como um IEnumerable<string>. No entanto, na expressão de segunda, var deve ser usado porque o resultado é uma coleção de tipos anônimos, e o nome desse tipo não é acessível, exceto para o compilador propriamente dito. Observe que no exemplo 2, o foreach variável de iteração item também deve ser digitada implicitamente.

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

Consulte também

Referência

Variáveis locais de tipo implícito (Guia de Programação em C#)

Conceitos

Guia de Programação em C#

Outros recursos

Referência de C#