23 dic 2008

Tipos anónimos en .Net

Los tipos anónimos son una nueva característica de .Net que utilizada junto a LINQ nos brinda grandes ventajas a la hora de escribir nuestro código.

Primero que nada, deberemos chequear que la opción Option Infer esté habilitada en nuestro proyecto. Para ello iremos a Propiedades del proyecto, en la pestaña Compilación. Por supuesto, al principio podremos tener algunos problemas si también utilizamos la opción Option Srtict, pero es cuestión de costumbre.

Volviendo a los tipos anónimos, al escribir una sentencia en LINQ, podremos definirnos una variable sin tipo y a pesar de ello tener intellisense.

Por ejemplo:

//C#
var hola = from x in myDdatacontext.table1
where x.id > 20
select x;


'VB.Net

Dim Hola = From x in MyDataContext.Table1 _
Where x.Id > 20 _
Select x


En realidad nuestras variables Hola, tomarán, en este caso el tipo IQueriable(Of Table1) con lo cual podremos ir navegando a través de los items devueltos por la consulta.

Suponiendo que Table1 tiene los campos Id, Nombre y Apellido, al escribir x. el intellisense nos mostrará como proiedades Id, Nombre y Apellido. Y de igual manera, cuando recorremos nuestras variables de tipos anónimos podremos ver el intellisense y acceder a cada propiedad, por ejemplo:

'VB.Net
For Each x in Hola
Console.Writeline(String.Format("ID: {0} Nombre: {1} Apellido: {2}", x.Id, x.Nombre, x.Apellido))
Next


Otra forma, sería si quisiéramos devolver el primer elemento del resultado de la consulta, entonces:

' VB.Net
Return Hola.First