「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>.NET開発]] --[[LINQ]] > [[ラムダ式って]] --[[動的言語ランタイム (DLR)]] --[[.NET の Reflection]] * 目次 [#dc7c2604] #contents *概要 [#fc7bf3b4] -式木(Expression tree)とは、式(数式)を木構造で表したものの事。 -以前は、1文だけのラムダ式のみ式木(Expression tree)にできた。 -.NET 4 から、強化され DLR で使っている構文木の全機能を備える。 *詳細 [#s384a42b] **使用例 [#j2e9a579] 実際に、文字列の計算式の計算結果を取得するライブラリでは、~ RPN(Reverse Polish Notation、[[逆ポーランド記法>https://ja.wikipedia.org/wiki/%E9%80%86%E3%83%9D%E3%83%BC%E3%83%A9%E3%83%B3%E3%83%89%E8%A8%98%E6%B3%95]])や~ 式木(Expression Tree)を使って計算するライブラリなどがある。 **[[LINQ]]との関連 [#z1813cfa] [[LINQ]]プロバイダでは、ラムダ式を式木として扱う *参考 [#tc1ae8a0] -herara_ofnir3.blogger: [C#]式木入門~ http://ofnirs.blogspot.com/2012/11/introduction-of-expression-tree.html --全てが式になる,全てが木になる,全てが式木になる - NyaRuRuが地球にいたころ~ http://nyaruru.hatenablog.com/entry/20071230/p1 --式木(Expression Trees) - C# によるプログラミング入門 | ++C++; // 未確認飛行 C~ https://ufcpp.net/study/csharp/sp3_expression.html -文字列の計算式の計算結果を取得する - .NET Tips (VB.NET,C#...)~ https://dobon.net/vb/dotnet/programing/eval.html --C# Expression Parser using RPN - CodeProject~ https://www.codeproject.com/Articles/5875/C-Expression-Parser-using-RPN --逆ポーランド記法と木構造の絵~ https://qiita.com/yumura_s/items/ddb0d143fb0e9a082891 -[[LINQ]]との関連 --C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~~ https://www.slideshare.net/Fujiwo/20141026-c-c-expression-tree --[C#][式木][LINQ] IQueryable な Twitter のタイムライン クラスと~ LINQ プロバイダー (プログラミング C# - 翔ソフトウェア (Sho's))~ http://blog.shos.info/archives/2014/12/csharp_expression_iqueryable.html -neue cc - Expression Treeのこね方・入門編 - 動的にデリゲートを生成してリフレクションを高速化~ http://neue.cc/2011/04/20_317.html **Sho's [#b8af20e4] (プログラミング C# - 翔ソフトウェア (Sho's)) ***[C#][ラムダ式][式木] [#k1abc4cf] Expression として扱えるラムダ式と扱えないラムダ式~ http://blog.shos.info/archives/2012/11/cexpression_expression.html -Expression の構造を調べてみる~ http://blog.shos.info/archives/2012/11/cexpression_expression_1.html -Expression を使ってラムダ式のメンバー名を取得する~ http://blog.shos.info/archives/2012/12/cexpression_expression_2.html -Expression でラムダ式を作成してデリゲートとして実行する~ http://blog.shos.info/archives/2013/06/csharp_expression4.html ***[C#][.NET][式木] [#r7680ea8] メタプログラミング入門 -式木による Add メソッドの動的生成~ http://blog.shos.info/archives/2013/11/csharp_addbyexpression.html -応用編 - オブジェクトの文字列変換のメタプログラミング (式木編)~ http://blog.shos.info/archives/2013/11/csharp_metaprogrammingpraxisexpression.html **実装例 [#ac242781] -Touryo.Infrastructure.Public.FastReflection at develop · OpenTouryoProject/OpenTouryo~ https://github.com/OpenTouryoProject/OpenTouryo/tree/develop/root/programs/CS/Frameworks/Infrastructure/Public/FastReflection ---- Tags: [[:プログラミング]], [[:.NET開発]]