Рантайм и типы - Expression tree 

Page / - Изменено Alexandr Fokin в 2021/04/05 12:43 

Expression tree 
Изменено Alexandr Fokin
в 2021/04/05 12:43

Оглавление

ExpressionTree позволяет накапливать выражения, содержащие операторы языка c#, в виде древовидной структуры. А после этого скомпилировать эту структуру в делегат.
При этом формировать и компилировать деревья выражений можно в рантайме.
Может использоваться для:
создания Generic типа с возможностью выполнять математические операции над элементами T. Например матрица <int> или <double>, в которой будет логика складывающая значения ячеек
Выполнения маппинга свойств (Как более быстрый аналог рефлексии)
iqueryable провайдер, формирующий запрос во внешнее хранилище (EntityFramework SQL)
Ссылки:
Деревья выражений в C# на примере нахождения производной (Expression Tree Visitor vs Pattern matching)
https://habr.com/ru/post/486972/
Введение в 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/
Принципы работы IQueryable и LINQ-провайдеров данных
https://habr.com/ru/post/256821/