這是一個快速的。我有以下代碼:
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