# Expression tree | Деревья выражений

Редактировал(а) Alexandr Fokin 2024/02/10 14:04

| Деревья выражений, ExpressionTree, Expression Tree, ExpressionTrees, Expression Trees
ExpressionTree | Позволяет накапливать выражения, содержащие операторы языка c#, в виде древовидной структуры. А после этого скомпилировать эту структуру в делегат. (Или обрабатывать, как делает EntityFramework | EntityFrameworkCore для трансляции запросов). При этом формировать и компилировать деревья выражений можно в рантайме. Замечание: вызов делегата, созданного на основе дерева выражений, быстрее, чем вызов метода напрямую через Reflection | Рефлексия .
Может использоваться для: | Динамическое создание поведения. Динамическое создание фабрики для объекта (в том числе Generic версии). Ускорении повторяющихся операций, использующих рефлексию. Создания Generic типа с возможностью выполнять математические операции над элементами T. Например матрица <int> или <double>, в которой будет логика складывающая значения ячеек Выполнения маппинга свойств (Как более быстрый аналог Рефлексия | Reflection) IQueryable провайдер, формирующий запрос во внешнее хранилище (EntityFramework SQL)
Ссылки: | GoF Design Patterns | Паттерны Interpreter, Visitor Введение в Expressions в языке C# http://sonyks2007.blogspot.com/2014/07/expressions-c.html Expression Tree. Просто о сложном http://sonyks2007.blogspot.com/2014/08/expression-tree.html Expressions в C# — impress yourself! https://habr.com/ru/post/83169/ Деревья выражений в C# на примере нахождения производной (Expression Tree Visitor vs Pattern matching) https://habr.com/ru/post/486972/ DotNet | Максим Аршинов — Деревья выражений в enterprise-разработке (IQueryable, JavaScript, Reflection | Рефлексия, Moq) https://www.youtube.com/watch?v=J2XzsCoJM4o

#### Внутренние ссылки:

###### Дочерние страницы:

###### Обратные ссылки:

- IQueryable
- EntityFramework | EntityFrameworkCore
- AutoFilterer
- Анемичная или богатая модель
- linq2db
- Serialize.Linq
- Добавление ссылки после создания Activity
- linq2db. InsertOrUpdate all properties.
- Сценарии

Создал(а) Alexandr Fokin 2021/11/07 13:04

- Комментарии (0)
- Вложения (0)
- История
- Информация

## Приложения