Cast
1. 概要
Cast は、上流から流れてくる各値を指定した型 TResult へ キャスト するオペレーターです。
値が指定した型にキャストできない場合は InvalidCastException がスローされます。安全にキャストできることが分かっている場合に使い、型が合わない値を除外したい場合は OfType を使用してください。
2. シグネチャ
指定した型へキャストする
csharp
public static Observable<TResult> Cast<T, TResult>(this Observable<T> source)上流の各値を (TResult)(object)value でキャストします。キャストに失敗すると例外が発生します。
csharp
source.Cast<object, string>()3. マーブルダイアグラム
上流のすべての値が TResult 型へキャストされて下流へ流れます。キャストできない値がある場合はエラーとなります。
4. サンプルコード
csharp
using R3;
// object 型の Observable を string 型へキャスト
Observable<object> source = Observable.Create<object>(observer =>
{
observer.OnNext("Hello");
observer.OnNext("World");
observer.OnCompleted();
return Disposable.Empty;
});
source.Cast<object, string>()
.Subscribe(x => Console.WriteLine(x.ToUpper()));
// 出力: HELLO, WORLD