2013-02-20 2 views

답변

10

편집 : 초기 답변이 너무 잘못되어 다시 시도하고 있습니다.

Expression.ArrayAccess은 배열의 요소 값을 가져 오거나 설정하는 데 사용할 수있는 IndexExpression을 반환합니다.

Expression.ArrayIndex은 제공된 배열 표현식의 순위 (차원 수)에 따라 BinaryExpression 또는 MethodCallExpression을 반환합니다. 그런 다음 반환 된 표현식을 사용하여 배열에서 값을 읽을 수 있습니다.

그래서 ArrayAccess은 배열 데이터에 대한 읽기 및 쓰기 액세스를 모두 제공하는 반면, ArrayIndex은 읽기 액세스 만 제공합니다.

+1

실제로 여러 개의 매개 변수를 사용하는 오버로드가 있습니다. – Alwyn

+0

젠장 ... 놓친 그 : P – Corey

+8

이유는 둘 다 존재하는 식 트리가. 닷넷 3.5와 닷넷 4 사이에서 변경하는 방법입니다 생각합니다. 3.5에서 식 트리는 할당을 지원하지 않았기 때문에 'ArrayIndex' 만있었습니다. 4에서는 배열에 값을 설정할 수있는 무언가가 필요했기 때문에 'ArrayAccess'가 추가되었습니다. – svick