У меня есть тестовое задание для оптимизации лямбда-выражения во время выполнения. Предполагая, что лямбда содержит некоторые «тяжелые» вызовы функций, мне нужно изменить лямбда так, чтобы все вызовы функций были кэшированы во временные переменные, которые затем могут заменять фактические вызовы функций в теле лямбда.Как оптимизировать лямбду во время выполнения?
Должна быть функция, которая получает лямбду в качестве параметра и возвращает оптимизированную лямбду, которую вы можете вызвать тогда.
Интересно, какой раздел C# это вообще? Я имею в виду, например, «узнать о размышлениях» или «узнать о дженериках». Что мне нужно узнать в этом случае?
Expression Trees - это отдельная глава книг C#. Он полусвязан с рефлексией (что вам нужно знать хотя бы немного). Он только касательно связан с дженериками (только потому, что вам может понадобиться отразить общие методы :-), а выражение Expression.Lambda <> 'использует generics ... так что оно больше связано со строками или массивами, чем с дженериками) – xanatos
Вы можете найти [Memoization] (http://en.wikipedia.org/wiki/Memoization), это, кажется, проблема здесь. –
не являются выражениями lamdba, скомпилированными во время выполнения? – Ewan