對於下面的Lambda表達式:LAMBDA物業名稱和數組索引
GetPropertyNameAndArrayIndex(() => SomeArray[0])
我知道,你可以得到property name的表達式。我也知道你可以通過使用ConstantExpression並訪問Right值來得到數組索引。我的問題是你如何獲得數組索引(或右值)時,它不是一個常數,即
for (int i = 0; i < 5; i++)
{
GetPropertyNameAndArrayIndex(() => SomeArray[i])
}
任何幫助將不勝感激。
請編輯。 「我知道你可以[缺少動詞]屬性名稱和數組索引」 – 2009-10-05 20:56:29
@Emilio謝謝你指出我可憐的語法:) – Kane 2009-10-05 21:05:01
小心這個片段:lambda將捕獲我的_variable_ in一個closre,而不是變量在創建時的值。您稍後再調用該函數,並且在所有迭代中創建的表達式將評估爲在最後一次迭代中創建的表達式。 – 2009-10-05 21:07:49