【发布时间】:2014-12-18 10:58:58
【问题描述】:
索引数组,无论维度如何,都是一种方法调用,因为它涉及调用索引器操作符。
那为什么方法System.Linq.Expressions.Expression.ArrayIndex的重载使得takes a single array index返回一个BinaryExpression,而它的表示索引多维数组的other overloads却返回MethodCallExpressions?
这只是打破了对称性,迫使我记住这个小异常。如果他们把它设为MethodCallExpression,我就不必记住或记下任何东西了。
【问题讨论】:
-
嗯数组索引器作为 IL 中的方法调用?这会使数组访问速度变慢两倍,我认为没有理由。一维数组针对性能进行了调整。多维数组不是。
-
谢谢。我对 IL 的了解并不多。这是我的待办事项之一。
标签: c# .net linq expression-trees linq-expressions