2013-02-20 33 views

Trả lời

10

Chỉnh sửa: Câu trả lời ban đầu của tôi quá tệ đến nỗi tôi lại cố gắng.

Expression.ArrayAccess trả về một IndexExpression có thể được sử dụng để nhận hoặc đặt giá trị của phần tử trong một mảng.

Expression.ArrayIndex trả về hoặc là BinaryExpression hoặc MethodCallExpression tùy thuộc vào thứ hạng (số thứ nguyên) của biểu thức mảng được cung cấp. Biểu thức trả về sau đó có thể được sử dụng để đọc một giá trị từ mảng đó.

Vì vậy, ArrayAccess cung cấp cho bạn biểu thức cung cấp cả quyền truy cập đọc và ghi vào dữ liệu mảng, trong khi ArrayIndex chỉ cho phép bạn truy cập đọc.

+1

Nó thực sự có quá tải, phải mất nhiều tham số. – Alwyn

+0

Chết tiệt ... bỏ lỡ rằng: P – Corey

+8

Tôi nghĩ lý do cả hai tồn tại là cách biểu hiện cây thay đổi giữa .Net 3.5 và .Net 4. Trong 3.5, cây biểu hiện không hỗ trợ gán, vì vậy chỉ có 'ArrayIndex'. Với 4, có một nhu cầu cho cái gì đó sẽ cho phép thiết lập giá trị trong một mảng, do đó, 'ArrayAccess' đã được thêm vào. – svick

Các vấn đề liên quan