var (Referencia de C#)

Actualización: noviembre 2007

Las variables que se declaran en el ámbito de método pueden tener un tipo var implícito. A una variable local con tipo implícito se le asigna establecimiento inflexible de tipos como si hubiera declarado el tipo el propio usuario, pero es el compilador el que determina el tipo. Las dos declaraciones siguientes de i tienen una funcionalidad equivalente:

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

Para obtener más información, vea Variables locales con asignación implícita de tipos (Guía de programación de C#) y Relaciones entre tipos en operaciones de consulta (LINQ).

Ejemplo

En el ejemplo siguiente se muestran dos expresiones de consulta. En la primera expresión, el uso de var se permite pero no es necesario, ya que el tipo del resultado de la consulta se puede indicar explícitamente como IEnumerable<string>. Sin embargo, en la segunda expresión debe utilizarse var, ya que el resultado es una colección de tipos anónimos y solamente el compilador puede tener acceso al nombre de ese tipo. Tenga en cuenta que, en el ejemplo 2, la variable de iteración foreachitem también debe tener tipo implícito.

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

Vea también

Conceptos

Guía de programación de C#

Referencia

Variables locales con asignación implícita de tipos (Guía de programación de C#)

Otros recursos

Referencia de C#