2013-02-20 18 views

回答

10

編輯:我最初的回答非常糟糕,我再次嘗試。

Expression.ArrayAccess返回一個IndexExpression,它可以用來獲取或設置數組中元素的值。

Expression.ArrayIndex根據提供的數組表達式的等級(維數)返回BinaryExpressionMethodCallExpression。然後可以使用返回的表達式從數組中讀取值。

因此ArrayAccess給出了一個表達式,該表達式既提供了對陣列數據的讀取訪問權限,也爲ArrayIndex提供了只讀訪問權限。

+1

它實際上有重載,它需要多個參數。 – Alwyn 2013-02-20 06:52:51

+0

該死的......錯過了:P – Corey 2013-02-20 06:53:30

+8

我認爲兩者存在的原因是表達式樹在.net 3.5和.Net 4之間變化的方式。在3.5中,表達式樹不支持賦值,所以只有'ArrayIndex'。使用4時,需要一些可以在數組中設置值的東西,因此添加了「ArrayAccess」。 – svick 2013-02-20 12:13:29