BT

InfoQ ホームページ ニュース クロージャーでAPI設計および使用法を改善

クロージャーでAPI設計および使用法を改善

ブックマーク

複雑な構文解析を実行するAPIによっては、イベントを通じて中間結果を公開するものがある。たとえば、XDocument.Validate拡張メソッドはイベントを使用し、プログラムに検証エラーがあることを通知する。

従来の.NETプログラミングでは、これらのイベントのキャッチは、各イベントで別々の機能を作成することを意味していた。イベントハンドラーに出入りする追加情報を渡す直接的な手段が存在しないため、これらの機能は通常throwawayクラス内で実装される。

 

Eric White氏はクロージャーを使用し、より良い方法をデモしている。クロージャーは、ラムダや匿名インライン機能の特殊なケースである。クロージャーを特 殊にさせているのは、それにローカルではない変数を参照することができるが、ラムダを含んでいる機能にはローカルである点である。このおかげで、Eric 氏はイベント処理ロジックを機能に対してローカルに維持する(リンク)ことができる。以下のラインは、作成中および検証機能に渡されているクロージャーを示してい る。

 

snippet.Validate(schemas, (o, e) => errors += e.Message + Environment.NewLine);

補足として、C#およびVBのクロージャーは、必要なメンバー変数を含む匿名クラスとして実装される。「閉鎖」変数は新たなクラスに移行されて、元の機能とそれが含むすべての匿名機能によって参照される。

原文はこちらです:http://www.infoq.com/news/2008/09/Closures-API

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。