プログラミング C# - 翔ソフトウェア (Sho's)

C#/.NET/ソフトウェア開発など

式木

IQueryable な Twitter のタイムライン クラスと LINQ プロバイダー

「C# Advent Calendar 2014」の12日目の記事。 前の記事 ← → 次の記事 以前、「[C#][式木][LINQ] Hokuriku.NET C# 勉強会『C# 式木』(2014-10-26、金沢) のスライド公開」で、IQueryable な LINQ について解説した。 LINQ to Objects 復習 IQueryable<T> 式木 (</t>…

Hokuriku.NET C# 勉強会『C# 式木』(2014-10-26、金沢) のスライド公開

『Hokuriku.NET C# 勉強会『C# 式木』(2014-10-26、金沢) で発表した資料に大幅に加筆して公開。 2014-10-26 「C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~」 from Fujio Kojima

Room metro #23 大阪「メタプログラミング C#」の資料公開

Room metro #23 大阪 (3月1日) でやったセッションの資料を公開。 メタプログラミング C# from Fujiwo サンプル コード サンプル コードはこちら。 ■ [C#][メタプログラミング][Reflection][Expression][式木][Roslyn][dynamic] 関連記事一覧 ■[C#][ラムダ式…

メタプログラミング入門 - 応用編 - オブジェクトの文字列変換のメタプログラミング (式木編)

※ 「[C#][.NET] メタプログラミング入門 - 応用編 - オブジェクトの文字列変換のメタプログラミング (Reflection.Emit 編)」の続き。 式木によるメタプログラミング Reflection.Emit の次は、式木によって文字列生成を行う例を見ていこう。 題材は同じく 「[…

メタプログラミング入門 - 式木による Add メソッドの動的生成

※ 「[C#][.NET] メタプログラミング入門 - Reflection.Emit による Add メソッドの動的生成」の続き。 式木によるメタプログラミング 前回は、Reflection.Emit を用いて Add メソッドを動的生成するプログラムを作成した。 今回は、式木によるメソッドの動的…

Expression でラムダ式を作成してデリゲートとして実行する

以前「Expression の構造を調べてみる」と云う記事で、Expression の内部のツリー構造を調べた。 その中で、ラムダ式として足し算を行うだけの (x, y) => x + y と云うシンプルなラムダ式を Expression で受け、その構造を調べた。 using System; using Syst…

C# による Observer パターンの実装 その4 - Expression を使ってプロパティの指定をタイプセーフに

前回「C# による Observer パターンの実装 その3 - 複数のプロパティの更新イベントをフレームワーク側で振り分け」と云う記事で、Observer パターンの C# による実装の第三回として、フレームワーク部で、プロパティ毎の更新処理が呼ばれるようにした。 結…

Expression を使ってラムダ式のメンバー名を取得する

前回「Expression の構造を調べてみる」と云う記事で、Expression の内部のツリー構造を調べた。 その中で、ラムダ式を Expression として扱うことで、式の中の名前が取れることが判った。 今回は これを利用してラムダ式のメンバー名を取得する例を挙げてみ…

Expression の構造を調べてみる

「匿名メソッドとラムダ式の違い」と云う記事で、匿名メソッドとラムダ式の意味の違いについて考えた。 「ラムダ式を Expression として扱っている場合は、匿名メソッドは代わりにはならない」と述べたが、ラムダ式を Expression として扱う例について、これ…

Expression として扱えるラムダ式と扱えないラムダ式

前回、「匿名メソッドとラムダ式の違い」と云う記事で、匿名メソッドとラムダ式の意味の違いについて考えた。 それについて、少し補足しておきたい。 「ラムダ式を Expression として扱っている場合は、匿名メソッドは代わりにはならない」と述べたが、ラム…

匿名メソッドとラムダ式の違い

この記事では、匿名メソッドとラムダ式の意味の違いについて考えてみたい。 ■ 同じように使える匿名メソッドとラムダ式 匿名メソッドとラムダ式は、同じように使うことができる場面が多い。 例えば、以下のようなデリゲートを引数にとるメソッドがあったとし…