タイトル : Re^4: デリゲートについて 投稿日 : 2006/12/14(Thu) 14:32 投稿者 : おーかみ
はじめましてm(__)m まず確認ですが、 つまり、私が言っているのはすなわち > もし、その処理クラスを自分で作っているのであれば、処理クラス側から直接、 > mainForm.MyMethod(…) > などと書いて、処理対象のメソッドを直接実行させることが可能ですね。 ということで、 私が解ってないないのが > でも、それだと「依頼側クラス」と「処理クラス」の依存度が強くなってしまい、汎用性に > 乏しいですし、その処理を他のプロジェクトで使いまわすときにも都合が悪くなります。 > そのクラスが、どこから呼び出されるのかは、事前には分からないわけですから。 この部分というわけですね?^^; > 『ユーザがクリックしたら、私の「このメソッド」を実行して下さい』 > 『計算途中でエラーが発生したら、私の「このメソッド」を呼び出して進捗を報告してください』 > 『計算が完了したら、最後に、私の「このメソッド」を実行して、処理の完了を通知してください』 > などといった依頼をする形にして、使い回しが利くようにしてみます。 とりあえず、考え方としては・・・・ sub main 依頼(クラス.クリックされた , クリック(のアドレス)) 依頼(クラス.エラーが起きた , エラー(のアドレス)) 依頼(クラス.作業が完了した , 完了(のアドレス)) クラス.実処理() sub end sub クリック() ・・・ end sub sub エラー() ・・・ end sub sub 完了() ・・・ end sub . . . class クラス sub 実処理 クリックされた() エラーが起きた() 作業が完了した() end sub sub クリックされた() 依頼されたアドレス実行 end sub sub エラーが起きた() 依頼されたアドレス実行 end sub sub 作業が完了した() 依頼されたアドレス実行 end sub end class こんな感覚ですか? でも > ' クラス側の実装 > Public Sub Foo(ByVal target As SampleDelegate) > : > target() > : > End Sub とかを見ると、なんか違うような感じだなあ ムウン。 |