クレオです。
C#の勉強中なのですが、どうもdelegateの使いどころがわかりません。
delegateを使用しているeventは強力な機能だなぁとは思いますが、
ただdelegateを使いたい場合がどのようなときなのか疑問です。
ただ処理を委託したいだけなら、直接呼んでしまえばいいのに。
としろうと考えしてみました。
イベント以外の用途だと……
・非同期処理を簡単に行いたい場合
BeginInvoke / EndInvokeを使うと,スレッドの生成が簡単に可能です。
・他のスレッドに属するUIコントロールを弄りたい場合
Control.Invokeへの経由が必須
あたりが主となるものかと。
なんとなくわかりましたが、
delegateである必要があるのかなぁとか思ったり。私の理解不足ですね。
C++で使うCallBackぐらいに思っておけばいいんでしょうか?
説明しようと思ったけど長くなりそうなので URL をペタペタ
デリゲート
http://wisdom.sakura.ne.jp/programming/cs/cs54.html
こっちの方が分かりやすいのかな……
http://ukamen.hp.infoseek.co.jp/Programming/Delegate/
個人的には,コールバックにデリゲートは使わないですね。
ただ,C# 2.0の匿名デリゲートがあるので,コールバックに使うことが増えるかもしれま
せん。
に処理をゆだねる相手が決まっているとは限らないし、
相手が常に1つとも限らない。このような状況に対処するために、
C#のdelegate機能が存在するわけである
(@IT:C#入門より)
つまりこーいうことなんですかね。なんとも自分では具体的にこーいうときに
使う。というのが出てきませんが理解したことします。
勉強しながら理解を深めていきます。
みなさん、ありがとうございました。