日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。Extensionsみたいなことが出来るということでじゃっかんハッスルしてたのですが、まだまだ提供されている便利メソッドは少ないというのが実情みたいです。(id:neueccさん情報)確かにObservableモジュールを眺めてみてもメソッドが数えるほどしかありません。Exteensionsとがっちり統合するとか、そういう未来を期待したいですね!とまぁ、現状ある範囲でも軽く遊ぶぶんには十分なのですが、個人的に気になるところがありました。これって例外処理どうやるの???ということで、以下のように3で割り切れる数のときは例外を出すようにちょろっとプログラムを変えて実行してみました。e.Triggerこれを実行すると、エラーで落ちるのかな?と思ったら落ちないで、以下の結果になりました。24810例外を完全にシカトしてます。PowerPackのソースコードをひっぱってきてObservableのコードを見てみました。PowerPackのコードをダウンロードしてcompiler\2.0\Nov2010\src\fsharp\FSharp.Coreの中にあるcontrol.fs内にコードがありました。Observable.subscribeを見てみると以下のように定義されていました。単純にIObservable<'T>.Subscribeに委譲しているだけです。w.Subscribe(f)でも、普通のIObservableのSubscribeはIObserverしか受け取らないはずなのに、ラムダ式を受け取ってます。これは、同じファイルで以下のようにIObservableが拡張されてました。}なんというか・・・例外握り潰してくれてます!!OnErrorとOnCompletedを完全にシカトしてます。これはいかん!!ということで、例外とか処理したかったら自分でなんとかしないといけないっぽいです。いうことでOnNextとOnErrorの2つのラムダ式を受け取るsubscribe2という関数を定義します。()})そして、最初のプログラムをsubscribeから上記で定義したsubscribe2を使うように書き換えます。value)10うん!ちょっとすっきり。ここら辺とか標準のライブラリに含まれる日を夢見て。C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。Blogの内容は個人の見解であり、所属する企業を代表するものではありません。)はてなブログをはじめよう!okazukiさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。