VisualBasic で Livet の LivetWeakEventListener を使う

先日来、某所で WeakEvent パターンの話題があがってます。そこで Livet の弱参照パターンの話もちょろっとしてみたわけですが・・・でも VBユーザーだとどうだろう・・・VBユーザーの多くはラムダ式馴染みないし、EventHandler をパラメータで渡すコードが浮かばない人も多いと思います。そこで VBLivetLivetWeakEventListener を使用するコードを考えてみました。


まず C# では基本こんな感じで実装します。サンプルコードは @ugaya40 さんの資料を引用させてもらいました。


次は VBのサンプルです。一つ目のパラメータ「EventHandler から THandler への変換」を VB でどう実装すればいいか判らない人多そうですが、VB だとこうなります。AddHandler と RemoveHandler がうざいけど、でも仕方ないよねw


#2014/11/14 : 後から以下の様に実装した方がいいんじゃね?と思い書き直してみましたが、コンパイルは通ったものの Hoge はコールされませんでした。も少し調べてみる。