Что может сделать максимальное деревья выражений LINQ? - PullRequest
3 голосов
/ 16 сентября 2009

Какое максимальное значение может дать дерево выражений LINQ?

Может ли он определить класс? Как насчет метода со всеми объявленными именем, модификаторами, типом параметра и типом возврата?

Должна ли программа всегда определять дерево самостоятельно? Можно ли сгенерировать дерево из заданного файла C #?

Где я могу получить ресурсы, чтобы узнать о написании базовых функций для расширенного дерева выражений и посетителя дерева выражений? (статьи и видео будут отличными)

Спасибо тем, кто в состоянии помочь ...

Ответы [ 2 ]

15 голосов
/ 16 сентября 2009

В C # 3 деревья выражений могут представлять выражения . Отсюда и название. Кроме того, они ограничены подмножеством выражений C # - без выражений присваивания, без выражений с типами указателей и т. Д.

В библиотеках, которые будут поставляться с C # 4, мы расширили дерево выражений library , чтобы также поддерживать деревья операторов. Однако C # 4 НЕ будет автоматически переводить лямбда-оператор в «дерево операторов».

Это очевидная и полезная функция, к которой у нас просто не было времени добраться до C # 4. Мы рассмотрим ее для гипотетических будущих версий. Если у вас действительно отличный пользовательский сценарий для деревьев выписок, я бы хотел услышать его.

Очевидное дальнейшее расширение всего, что есть деревья объявлений, которые будут представлять объявления классов, объявления структур и так далее. Было бы здорово иметь полную гомоиконичность между языком C # и библиотекой дерева выражений. Это позволило бы все виды интересных сценариев метапрограммирования. Но это не произойдет в ближайшее время, так что не надейтесь. Это скорее моя давняя мечта, которая может никогда не осуществиться.

...