En ocasiones nos podemos ver enfrentados a la problemática de no saber de qué tipo debemos declarar una variable, parece raro, pero no lo es y te diré porque. Primero revisemos el siguiente código:
protected void Button1_Click(object sender, EventArgs e) { Int32 departmentID = Convert.ToInt32(departmentList.SelectedValue); var courseInfo = from c in schoolContext.Course where c.Department.DepartmentID == departmentID select new { CourseID = c.CourseID, CourseTitle = c.Title, CourseCredits = c.Credits }; foreach (var course in courseInfo) { Response.Write("<br>ID: " + course.CourseID + "<br>Title:" + course.CourseTitle + "<br>Credits:" + course.CourseCredits); } }
El resultado de courseInfo es una colección de tipos anónimos y solamente el compilador puede tener acceso al nombre de ese tipo y es aquí entonces en donde usaremos var y lógicamente la variable course en foreach también debe tener tipo implícito.
Ahora si revisamos este segundo ejemplo, inmediatamente podemos deducir que el tipo de la variable courseInfo para su resultado es IEnumerable
protected void Button2_Click(object sender, EventArgs e) { string[] Courses = { "Ingenieria", "Ingles", "Economia", "Matematicas" }; IEnumerable<string> courseInfo = from name in Courses where name[0] == 'I' select name; foreach (string course in courseInfo) { Response.Write("<br>Course :" + course); } }
Entonces en resumen, a las variables locales se les puede asignar un "tipo" deducido var en lugar de un tipo explícito. La palabra clave var indica al compilador que deduzca el tipo de la variable a partir de la expresión que se encuentra en el lado derecho de la instrucción de inicialización. El tipo deducido puede ser un tipo integrado, un tipo anónimo, un tipo definido por el usuario o un tipo definido en la biblioteca de clases de .NET Framework.
Saludos, Toby
No hay comentarios:
Publicar un comentario