Tipos anónimos en C#

1 - Qué son los tipos anónimos en C#.

Un tipo anónimo es una clase que no tiene nombre, lo cual quiere decir que no tenemos esa clase como tal en el código. La gran mayoría de las veces, utilizaremos tipos anónimos cuando realizamos queries.

Pero también podemos utilizarlos fuera de las queries, para crear un tipo anónimo, lo único que necesitamos es utilizar la palabra reservada new

var equipo = new { Nombre = "Real Betis", Ligas = 1 };

como podemos observar el objeto que hemos creado es un objeto llamado equipo el cual tiene dos propiedades, Nombre y Ligas; Cuando asignamos un valor a estas propiedades, el compilador automáticamente detecta el tipo que van a ser basándose en el valor que asignamos a la propiedad. en este caso nombre será un string y Ligas será un int.

Posteriormente si queremos acceder a sus propiedades únicamente debemos escribir el nombre de la variable y su propiedad utilizando el punto

string nombreEquipo = Equipo.Nombre;

1.1 - Cómo enviar un tipo anónimo como parámetro.

Antes de continuar decir que enviar tipos anónimos como parámetro no es una buena práctica que se deba hacer. pese a ello hay una forma de realizar esta acción.

Los tipos anónimos no tienen tipo como tal, por lo que para enviarlo a un método diferente, debemos utilizar en ese método el tipo dynamic pero nos puede dar muchos errores en tiempo de ejecución, ya que el compilador no comprueba que el tipo que pasemos sea el correcto. 

public void test(dynamic equipo)
{
    var t = equipo.Nombre;
}

Una vez hemos creado el método y pasado el tipo dynamic, podemos acceder a sus propiedades utilizando el punto, como en un objeto normal. Hay que tener en cuenta que a partir de ahora este objeto no será comprobado de que la propiedad exista, y si por ejemplo, escribimos mal la propiedad, indicamos una que no existe, nos dará un error.

Veremos el tipo dynamic más adelante en su propio post