차원에 관계없이 배열 인덱싱은 인덱서 연산자을 호출하기 때문에 메서드 호출입니다.1 차원 배열의 인덱싱 인스턴스가 MethodCallExpression이 아닌 BinaryExpression 인 이유는 무엇입니까?
그럼 왜있어서 System.Linq.Expressions.Expression.ArrayIndex
의 과부하 takes a single array index는 인덱싱 다차원 배열을 표현하는하는 BinaryExpression
그 반면 other overloads
을 반환하게된다 MethodCallExpression
S를 반환하게된다?
이것은 대칭성을 깨기 때문에이 작은 변종을 기억하게 만듭니다. 그들이 그것을 MethodCallExpression
으로 만들었다면 나는 기억하거나 아무것도 기억할 필요가 없었을 것입니다.
IL에서 메서드 호출로 Hmm 배열 인덱서? 배열을 두 번 더 느리게 액세스하게 만들 것입니다. 그 이유는 없습니다. 1 차원 배열은 성능을 위해 조정됩니다. 다차원 배열은 그렇지 않습니다. –
감사합니다. 나는 일리노이에 대해 교육받지 못했습니다. 해야 할 일 목록에있는 항목 중 하나입니다. –