Rx 中的 IObservable 和 ObservableExtensions 是什么关系?
What is the relationship between IObservable and ObservableExtensions in Rx?
我看了Reactive Extension的代码,然后找到这段代码
private readonly IObservable<TSource> _source;
protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
{
var sink = new _(this, observer, cancel);
setSink(sink);
return _source.SubscribeSafe(sink);
}
我发现方法 SubscribeSafe(sink)
在 class ObservableExtensions
中,而 class 没有实现接口 IObservable
。为什么参数_source有成员函数SubscribeSafe
()?
因为ObservableExtensions
中的方法是扩展方法。
你可以阅读它们 here.
我看了Reactive Extension的代码,然后找到这段代码
private readonly IObservable<TSource> _source;
protected override IDisposable Run(IObserver<TResult> observer, IDisposable cancel, Action<IDisposable> setSink)
{
var sink = new _(this, observer, cancel);
setSink(sink);
return _source.SubscribeSafe(sink);
}
我发现方法 SubscribeSafe(sink)
在 class ObservableExtensions
中,而 class 没有实现接口 IObservable
。为什么参数_source有成员函数SubscribeSafe
()?
因为ObservableExtensions
中的方法是扩展方法。
你可以阅读它们 here.