это не вопрос, так как я думаю, что это обсуждение, я знаю, что вы не можете вернуть анонимный тип через методы, когда я впервые использовал анонимные типы, я подумал, что было бы очень приятно иметь возможность возвращать его через методы и когда .net 4 вышло, и с выпуском динамических типов я подумал, что может быть надежда вернуть анонимный тип через динамический тип, подобный этому:
public static dynamic getCustomer()
{
.....
var x = from c in customers
select new {Fname = c.FirstName};
return x;
}
, а затем
static void Main(string[] args)
{
dynamic x = getCustomer();
Console.WriteLine(x.First().Fname);
Console.ReadKey();
}
но, к сожалению, это не работает, хотя компилируется хорошо,
Я думаю, причина:
Анонимные типы известны в типе компиляции и должны быть заключены в классы, ЗНАЮЩИЕСЯ В ЗАПУСКЕ!, Теперь анонимный тип переносит их информацию во время компиляции, надеясь, что какой-то класс придет и примет эту информацию во время выполнения, но динамический тип неизвестен в время компиляции, так что, передавая анонимный тип через динамический тип, вынуждает анонимный тип терять его информацию / интеллектуальность, я пытался отладить и мог получить нужные данные, но, думаю, это работает только в режиме отладки, или, может быть, я что-то упустил.
Мне было интересно, кто-нибудь заставил его работать или думал об этом?