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

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

C#

C# による Observer パターンの実装 その1 - 古典的な実装

「Expression を使ってラムダ式のメンバー名を取得する」と云う記事で、ラムダ式の中のメンバーの名前を取得した。 これから数回に渡って、Observer パターンの C# による実装を何種類か例に挙げ、その中で上記を活用していきたい。 今回は、その第一回とし…

プラグイン処理

動的処理の一例として、今回はプラグイン処理を行ってみる。 プラグイン処理によって、アプリケーションに対して動的に機能を追加できるようにすることができる。 ■ プラグイン処理の例 今回のプラグインは、以下のような規約ベースで動くものとする。 実行…

DynamicObject を使ってみよう その 2

前回の「DynamicObject を使ってみよう」の続き。 前回は、DynamicObject と ExpandoObject を使ってみた。 DynamicObject の派生クラスや ExpandoObject は連想配列のように機能した。 但し、通常の連想配列とはインタフェイスが異なる。 今回も、引き続き …

DynamicObject を使ってみよう

C# 4 から dynamic が使えるようになった。 動的言語のように、動的にプロパティを参照したり、メソッドを呼んだり出来るようになった訳だ。 そして、.NET Framework では 4 から System.Dynamic と云う名前空間ができた。 今回は、この名前空間の中の Dynam…

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

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

ラムダ式は常に匿名メソッドよりシンプルに書ける?

「匿名メソッドとラムダ式の違い」と云う記事で、匿名メソッドとラムダ式の意味の違いについて考えた。 それについて、些細な補足をする。 上の記事中で、「ラムダ式を使った方が、型推論の恩恵を存分に受けられ、書き方がぐっとシンプルになる。」、「一般…

Expression の構造を調べてみる

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

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

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

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

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