LINQ Expression Treeでできる最大のことは何ですか?
-
07-07-2019 - |
質問
LINQ式ツリーで可能な最大値は何ですか?
クラスを定義できますか? 宣言されたすべての名前、修飾子、パラメーター型、戻り値の型を含むメソッドはどうですか?
プログラムは常にツリーを自分で定義する必要がありますか?特定のC#ファイルからツリーを生成することは可能ですか?
基本から高度なExpression TreeおよびExpression Tree Visitorの作成について学ぶためのリソースはどこで入手できますか? (記事とビデオは素晴らしいでしょう)
助けてくれてありがとう...
解決
C#3では、式ツリーは式を表すことができます。したがって、名前。また、C#式のサブセットにさらに制限されています。割り当て式、ポインター型を含む式などはありません。
C#4に同梱されるライブラリでは、式ツリー library を拡張してステートメントツリーもサポートしています。ただし、C#4は文ラムダを自動的に「文ツリー」に変換しません。
これは、C#4に到達する時間がないだけの明らかで便利な機能です。将来の仮想バージョンで検討します。ステートメントツリーの非常に優れたユーザーシナリオをお持ちの場合は、ぜひお聞かせください。
クラスの宣言、構造体の宣言などを表す、宣言ツリーであるすべての拡張機能。 C#言語と式ツリーライブラリの間に完全な同質性があることは素晴らしいことです。あらゆる種類の興味深いメタプログラミングシナリオが可能になります。しかし、それはすぐには起こりませんので、あなたの希望を上げないでください。それは私の夢であり、決して起こらないものです。
他のヒント
式ツリー:
http://www.interact-sw.co .uk / iangblog / 2005/09/30 / expressiontrees
http://www.davidhayden.com/blog/ dave / archive / 2006/12/18 / ExpressionTrees.aspx
http://msdn.microsoft.com/en-us/library/bb397951。 aspx
http://community.bartdesmet.net/blogs/bart/archive/2006/11/22/Getting-started-with-C_2300_-3.0-Expression-Trees.aspx
http:// blah .winsmarts.com / 2006/05/23 / demystifying-c-30--part-7-expression-trees.aspx
訪問者パターン:
http://www.dofactory.com/Patterns/PatternVisitor.aspx
http://en.wikipedia.org/wiki/Visitor_pattern