Вопрос по linq, .net, c#, expression-trees – Что такое деревья выражений, как вы их используете и зачем их использовать?

67

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

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

Ответили с несколькими примерами .. / Stackoverflow.com вопросы / 403088 / ... Moumit

Ваш Ответ

1   ответ
66

которая содержит выражения, которые в основном представляют собой код. Так что это древовидная структура, которая представляет вычисление, которое вы можете сделать в коде. Эти фрагменты кода затем можно выполнить, «запустив» дерево выражений над набором данны

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

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

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

Это не совсем правда. Как указано в связанной статье, деревья выражений в основном используются для представления вычислений, которые будут отправлены по сети для выполнения в другом месте. По этой причине они не содержат код; скорее они вместо кода. david.pfx
еревья @Expression можно использовать для любых вычислений, которые вы хотите выполнить, локально или удаленно. Вы можете легко написать синтаксический анализатор, который преобразует типизированное выражение в дерево выражений. Также я никогда не говорил, что деревья выражений содержат код. Roy Dictus
если «древовидная структура с кусочками кода в нем» не означает, что они «содержат код», тогда вам следует отредактировать свой ответ, чтобы прояснить это. Вы должны четко дать понять, что выражения не содержат никакого кода IL, и полагаться на дальнейшее преобразование во что-то исполняемо david.pfx
@ RoyDictus Это не очевидно без чтения между строк. Предполагать, что интеллект часто является плохой идеей. Пожалуйста, будьте явными. Gusdor
Я также хотел бы отметить, что тот, кто ищет ответ на этот вопрос, скорее всего, не знает об ответе, и там для «интеллекта» или знания пользователя следует принять значение 0 (по предмету под рукой) Steve Byrne

Похожие вопросы