tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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

とかを見ると、なんか違うような感じだなあ
ムウン。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。