【发布时间】:2010-08-02 09:36:47
【问题描述】:
这不是一个问题,因为我认为它的讨论,我知道你不能跨方法返回匿名类型,当我第一次使用匿名类型时,我认为能够跨方法返回它真的很好,当 .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();
}
但遗憾的是,尽管编译得很好,但它不起作用,
我猜原因是:
在编译类型中已知的匿名类型必须包装到在运行时已知的类中!现在匿名类型在编译时携带它们的信息,希望某些类会来并将这些信息带到运行时,但动态类型在编译时间,所以通过动态类型传递匿名类型会强制匿名类型丢失其信息/智能,我尝试调试,我可以得到我想要的数据,但我猜它只能在调试模式下工作,或者我可能遗漏了一些东西。
我想知道是否有人让它工作或考虑过它?
【问题讨论】:
标签: dynamic parameters types return anonymous