这是一个快速的。我有以下代码:
var关键字不是推断RepeaterItem的类型,为什么?
foreach (var item in myRepeater.Items)
{
MyViewModelItem x = new MyViewModelItem();
MapToEntity(x, item);
myList.Add(report);
}
void MapToEntity(object entity, Control control);
我希望这段代码编译时没有问题。但是,它没有。
它导致编译时错误,指出方法“MapToEntity”有一些无效的参数。编译器无法推断出RepeaterItem的类型,它将它识别为普通的System.Object。
这是为什么发生?我错过了什么吗?
Ps:我通过删除var关键字并明确定义了项目“RepeaterItem”的类型来修正了代码。
walkaround将是'Items.OfType()'或'Items.Cast ()' –
2010-02-11 13:38:46
啊哈..现在,我明白了。谢谢安东! – Galilyou 2010-02-11 13:55:44
您应该注意.OfType()是“更安全”的,因为它将删除任何非正确类型的值。而.Cast()会抛出异常。如果您的收藏中没有混合类型,则不是问题。 – 2010-02-11 14:44:53