Индексирование массива, независимо от его размеров, является вызовом метода, поскольку он включает вызов оператора индексатора .Почему экземпляр индексации одномерного массива представляет собой двоичное выражение, а не выражение MethodCallExpression?
Тогда почему перегрузка метода System.Linq.Expressions.Expression.ArrayIndex
takes a single array index, что сделано, чтобы возвращать BinaryExpression
тогда как его other overloads
, которые представляют собой индексы многомерные массивы, сделаны для возврата MethodCallExpression
S?
Это просто нарушает симметрию, заставляя меня помнить эту маленькую аномалию. Если бы они сделали это MethodCallExpression
, мне бы не пришлось помнить или ничего не учитывать.
Хмм-индекс индекса как вызов метода в ИЛ? Это приведет к тому, что массив будет работать в два раза медленнее, я не вижу причин для этого. Одномерные массивы настроены на производительность. Многомерных массивов нет. –
Спасибо. Я не настолько образован в отношении ИЛ. Это один из этих элементов в моем списке дел. –