Что такое деревья выражений, как вы их используете, и почему вы их используете?

Я просто наткнулся на концепцию деревьев выражений, которые я слышал несколько раз. Я просто хочу понять, что подразумевается под деревом выражений и его целью.

Мне бы это понравилось, если бы кто-то мог направить меня к простым объяснениям и примерам использования.

Ответ 1

Дерево выражений - это структура данных, содержащая выражения, которые являются в основном кодом. Таким образом, это древовидная структура, которая представляет собой расчет, который вы можете сделать в коде. Затем эти фрагменты кода могут быть выполнены путем "запуска" дерева выражений по набору данных.

Замечательная вещь в деревьях выражений заключается в том, что вы можете создавать их в коде; то есть вы создаете исполняемый код (или последовательность шагов) в коде. Вы также можете изменить код перед его исполнением, заменив выражения другими выражениями.

Выражение является делегатом функции, например (int x => return x * x).

См. также http://blogs.msdn.com/b/charlie/archive/2008/01/31/expression-tree-basics.aspx