【发布时间】:2014-02-24 18:35:49
【问题描述】:
我有以下类型推断“失败”的情况(至少我希望它失败了)。基本上,我有一个接受泛型数组的方法。我需要为匿名对象键入该数组,但类型推断无法这样做。
private void foo<T>(IEnumerable<T> items, Func<T, Object>[] propertySelector) { }
public void Main()
{
var peeps = new[]
{
new {FirstName = "Taco", LastName = "King"},
new {FirstName = "Papa", LastName = "Georgio"}
};
foo(peeps, new[]
{
an => an.FirstName, //Error cannot infer type of "an"
an => an.LastName //Error cannot infer type of "an"
});
}
我认为原因是数组类型是从其内容而非上下文推断出来的。看起来这使得在这种情况下使用匿名类型变得不可能。
有什么办法解决这个问题吗?
【问题讨论】:
标签: c# type-inference