var
es útil para los tipos anónimos, que no tienen nombres para su uso.
var point = new {X = 10, Y = 10};
Esto creará un tipo anónimo con propiedades X e Y. Sin embargo, se usa principalmente para admitir LINQ. Supongamos que usted tiene:
class Person
{
public String Name {get; set;}
public Int32 Age {get; set;}
public String Address {get; set;}
// Many other fields
}
List<Person> people; // Some list of people
Ahora supongamos que quiero seleccionar sólo los nombres y años hasta los 18 años de esas personas que están bajo la edad de 18 años:
var minors = from person in people where person.Age < 18 select new {Name = person.Name, YearsLeft = 18 - person.Age};
Ahora minors
contiene una List
de algunas tipo anónimo Podemos repetir aquellas personas con:
foreach (var minor in minors)
{
Console.WriteLine("{0} is {1} years away from age 18!", minor.Name, minor.YearsLeft);
}
Nada de esto hubiera sido posible sin; Tendríamos que seleccionar el objeto Person completo y luego calcular YearsLeft en nuestro ciclo, que no es lo que queremos.
Y cuando digo "supongo que si está enumerando a través de una colección también se puede simplemente a 'var' y luego averiguar el tipo más adelante." Sé que ya está tipeado en tiempo de ejecución ... Solo quise decir en tu lógica. – Matt
posible duplicado de [Uso de la palabra clave var en C#] (http://stackoverflow.com/questions/41479/use-of-var-keyword-in-c-sharp) – nawfal