1.C#、VB.NET-5.オブジェクト指向-2.デリゲートデリゲートの使いどころとして、前回は共通処理をまとめる話をしました。今回は2つ目「保留」です。プログラミングを構築していると、長いコードの中でどうしても「クラスの宣言」と「メソッドの実行」を分けて行いたい(タイミングが異なる)場面が結構あるのです。デリゲート自体が「宣言」と「実行」が分かれていることを利用する方法です。以下のクラスを考えます。Classクラスが2つあり、条件によって呼び出すクラスが異なるプログラムを想定しています。変数nがあり、n=1の場合Test1クラスのTest1Methodメソッドを呼び、n=2の場合はTest2クラスのTest2Methodメソッドを呼びだします。クラスの宣言(コンストラクタ)とメソッドの実行はタイミングの関係上一緒に行えないという状況を考えて下さい。単純にプログラムを構築しようとすると、以下の流れになるはずです。同じ条件分岐が2回出てしまいました。宣言と実行が分かれているので当然と言えば当然です。それでは、このフローチャートをそのままコードにしてみます。{"hoge"})Next2回目の条件分岐では遅延バインディングとなってしまいますので、リフレクションを利用して実行するメソッドを宣言しInvokeメソッドを実行する必要があります。宣言用の変数の他にリフレクション用の変数が追加で必要ということです。これをデリゲートを使った方法に変更するとどうなるでしょうか。dlgt("hoge")Nextこのようにフローチャート上のピンクの処理が全て消えてしまいました。デリゲートを利用することで、メソッドの実行自体を「保留」することが可能なのです。ポリモーフィズムの概念を利用すれば、1回目の条件分岐も消すことが可能ですが、今回は実行するメソッドの保留を分かりやすく説明するため、敢えてポリモーフィズムは無視した設計をしています。逆に言えば、今回のテーマを読んでいて途中でそれに気が付いた方は、オブジェクト指向型言語がよく分かってきている証拠とも言えます。2(保留)Tweet広告を非表示にする関連記事2019-04-27ポリモーフィズム(インターフェース)インターフェースでポリモーフィズムを実現します。Javascriptからクリップボードを設定はてなブログをはじめよう!sasaki816さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。