Los tipos anónimos están destinados a ser utilizados únicamente en ámbitos muy estrechos. La mayoría de los casos de uso que he tenido para ellos involucran a Linq.
var result = from x in MyCollection
select new
{
x.Prop1,
x.Prop2
};
Además, en el caso de LINQ a SQL - con ayuda de los tipos anónimos generará diferentes SQL al seleccionar sólo las columnas que se utilizan en el tipo anónimo. En el caso anterior (si fuera una consulta de Linq a SQL), generaría algo como "seleccionar prop1, prop2 de mytable" en lugar de seleccionar todos los campos.
Nunca me encontré (todavía) con una situación en la que solo quería declarar un nuevo tipo anónimo en mi código. Supongo que, en todo caso, tal vez sería un buen uso para las constantes locales?
var x = new
{
FirstName = "Scott",
LastName = "Ivey"
};
Hmmm ... Constantes locales es una idea interesante. Sí, he oído hablar de ellos utilizados con consultas de LINQ, pero nunca me pareció útil. –