Inicio > .NET Framework, Apunte, C# > Tipos anónimos

Tipos anónimos


Un tipo anónimo es un objeto que es instanciado, pero sin darle un nombre en particular, y que es inicializado al momento de declararlo. Por supuesto, tras bambalinas, el compilador le genera un nombre, pero éste no está disponible en el resto de tu código fuente. Y por lo mismo, tienes que asignarlo a una variable declarada con “var”, ya que no puedes especificar el tipo de dato.

Para crear una instancia de un tipo anónimo basta utilizar el operador “new” seguido de las propiedades y su inicialización. Por ejemplo:

var tipo = new { Numero = 100, Cadena = "Avada kedavra", Real = 1.2F };

En este ejemplo, “tipo” contiene tres propiedades: Numero, de tipo int; Cadena, de tipo string; y Real, de tipo float. El compilador determina el tipo de dato de las propiedades en base al valor con el que se inicializa. Evidentemente la propiedad no puede quedar sin inicializar.

Un tipo anónimo no puede tener métodos, ni heredar de una clase (que no sea System.Object) ni implementar interfaces ni nada. Incluso las propiedades son de solo lectura.

Cuando uno manda llamar Equals del tipo anónimo (que hereda de object), obtendrá un valor verdadero solo si todas las propiedades entre ambas son iguales. Algo similar aplica para GetHashCode.

Los tipos anónimos parecen ser una limitante, pero son muy útiles cuando trabajamos con LINQ (en poco tiempo publicaré un tutorial al respecto).

Para mayor información, consulta la documentación de MSDN sobre tipos anónimos.

Categorías:.NET Framework, Apunte, C# Etiquetas:
  1. Aún no hay comentarios.
  1. abril 16, 2010 a las 12:22 am
  2. abril 21, 2010 a las 3:42 pm

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s