例5-1 Document クラス
この例は StartingPoint ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる Document.cs ファイルの6行目以降に相当します。
例5-2 文書処理メソッドの一部
この例は StartingPoint ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcesses.cs ファイルの9行目以降に相当します。
例5-3 文書処理
この例は StartingPoint ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの9行目以降に相当します。
例5-4 文書処理クラスをテストするプログラム
この例は StartingPoint ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる Program.cs ファイルの9行目以降に相当します。
例5-5 より柔軟な文書プロセッサ
この例は ClassBased ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの9行目以降に相当します。
例5-6 abstract DocumentProcess の実装
この例は ClassBased ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcesses.cs ファイルの29行目以降に相当します。
例5-7 複数の処理手順を保持する文書プロセッサの設定
この例は ClassBased ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる Program.cs ファイルの39行目以降に相当します。
例5-8 動的に設定されるプロセッサを使用する
この例は ClassBased ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる Program.cs ファイルの11行目以降に相当します。
例5-9 デリゲートを使用するようにDocumentProcess を修正する
この例は DelegateBased ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの9行目以降に相当します。
例5-10 さらに別の処理ステップ
この例は DelegateBased ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる TrademarkFilter.cs ファイルの7行目以降に相当します。
例5-11 static ではないメソッドを処理ステップに追加する
この例は DelegateBased ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる Program.cs ファイルの38行目以降に相当します。
例5-12 組み込みのAction<T> デリゲート型を使うようにプロセッサを変更
この例は GenericAction ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの9行目以降に相当します。
例5-13 簡易チェック機能を文書プロセッサに追加
この例は QuickCheck ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの9行目以降に相当します。
例5-14 Predicate<T> を使用するようDocumentProcessor を変更する
この例は GenericPredicate ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの9行目以降に相当します。
例5-15 変更後のDocumentProcessor を使用するように設定メソッドを更新
この例は GenericPredicate ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる Program.cs ファイルの38行目以降に相当します。
例5-16 デリゲートを保持するプロパティ
この例は Lambdas ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの9行目以降に相当します。
例5-17 プロパティ内のデリゲートの利用
この例は Lambdas ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの48行目以降に相当します。
例5-18 ラムダ式によるプロパティの設定
この例は Lambdas ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる Program.cs ファイルの29行目以降に相当します。
例5-19 ログ出力コールバックを若干改善
この例は Logging ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる Program.cs ファイルの11行目以降に相当します。
例5-20 入れ子メソッドから周辺の変数を変更する
この例は Closures ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる Program.cs ファイルの32行目以降に相当します。
例5-21 イベントの発生
この例は Events ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの42行目以降に相当します。
例5-22 イベントの購読と購読の解除
この例は Events ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる ProductionDeptTools.cs ファイルの6行目以降に相当します。
例5-23 Main メソッドの更新
この例は Events ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる Program.cs ファイルの43行目以降に相当します。
例5-24 独自のイベント引数クラス
この例は CustomEventArgs ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる ProcessEventArgs.cs ファイルの6行目以降に相当します。
例5-25 イベントメンバの更新
この例は CustomEventArgs ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの11行目以降に相当します。
例5-26 イベントを発生させるコードの更新
この例は CustomEventArgs ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの76行目以降に相当します。
例5-27 イベント引数オブジェクトの生成
この例は CustomEventArgs ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの43行目以降に相当します。
例5-28 キャンセル可能なイベント引数
この例は CancelEventArgs ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる ProcessCancelEventArgs.cs ファイルの6行目以降に相当します。
例5-29 キャンセル可能なイベント
この例は CancelEventArgs ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの11行目以降ならびに86行目以降に相当します。
例5-30 キャンセルのサポート
この例は CancelEventArgs ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの43行目以降に相当します。
例5-31 キャンセル機能の利用
この例は CancelEventArgs ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる ProductionDeptTools.cs ファイルの6行目以降に相当します。
例5-32 独自のイベント用ストレージ
この例は CustomEventStorage ディレクトリ以下の DocumentProcessing.sln ソリューションに含まれる DocumentProcessor.cs ファイルの9行目以降に相当します。