Sự khác nhau giữa 2 là gì? Từ tài liệu API, có vẻ như chúng có ý định làm điều tương tự.ArrayAccess so với ArrayIndex trong cây biểu thức
vs
Trong trường hợp này, họ có vẻ hơi thừa, vì vậy tôi phải mất một cái gì đó ở đây.
Sự khác nhau giữa 2 là gì? Từ tài liệu API, có vẻ như chúng có ý định làm điều tương tự.ArrayAccess so với ArrayIndex trong cây biểu thức
vs
Trong trường hợp này, họ có vẻ hơi thừa, vì vậy tôi phải mất một cái gì đó ở đây.
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.
Nó thực sự có quá tải, phải mất nhiều tham số. – Alwyn
Chết tiệt ... bỏ lỡ rằng: P – Corey
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