Reactive Extensionsは、ReactiveX(リアクティブプログラミング)を実現するためのライブラリ。
ReactiveX
GitHub - dotnet/reactive: The Reactive Extensions for .NET
Reactive Extensionsのはじめかた - かずきのBlog@hatena
C#の主要インターフェース解説:IObservable<T>、IObserver<T> - がりらぼ
このカテゴリでは本家のC#版を扱う。
WPFプロジェクトを作成し、
Buttonを選択。
このように配置。
Buttonのハンドラもダブルクリックで用意しておく。
NuGetから、
System.Reactiveで検索。
1番上のこれを選択してインストール。
必要なものが一通りインストールされる。
完了したらこうなる。
新しい項目で、
クラスCustomObserver.csを追加。
IObserver<string>を継承するので、
インターフェースの内部処理を実装する。
自動だとこうなるので、ちょっと修正して、
OnNextで渡された文字列valueをMessageBox.Showで表示する。
新しい項目で、
今度はCustomObservable.cs。
こちらもインターフェースを実装。
修正すると、
Subscribeでリスト追加、Executeでforeach実行。
MainWindow.xaml.csは、
customObservableにcustomObserver1、customObserver2の2つを登録。
Buttonがクリックされたら、customObservable.Executeを実行。この時、文字列"ABCDE"を渡す。
実行して、Buttonを押すと、
customObserver1、customObserver2、と2つあるので、2回表示される。
Sample/rx/IObserver_T/IObserver_T/src/IObserver_T at master · bg1bgst333/Sample · GitHub