2
System.Reactive.Subjects.Subject<T>
和System.Reactive.Subjects.ReplaySubject<T>
类有什么区别?主题<T>和ReplaySubject <T>之间的主要区别是什么?
一个不会从另一个派生,但它们具有相同的描述并在MSDN中实现相同的接口。
System.Reactive.Subjects.Subject<T>
和System.Reactive.Subjects.ReplaySubject<T>
类有什么区别?主题<T>和ReplaySubject <T>之间的主要区别是什么?
一个不会从另一个派生,但它们具有相同的描述并在MSDN中实现相同的接口。
把这个代码:
var subject = new Subject<int>();
subject.OnNext(42);
subject.OnCompleted();
subject.Subscribe(x => Console.WriteLine(x));
,并比较这一点:
var subject = new ReplaySubject<int>();
subject.OnNext(42);
subject.OnCompleted();
subject.Subscribe(x => Console.WriteLine(x));
第一不产生价值。第二个产生42
。
基本上Subject
只会为当前订户生成值,而ReplaySubject
会记住未来订阅的值(当它“重新播放”值时)。
阅读https://msdn.microsoft.com/zh-CN/library/hh242970(v=vs.103).aspx的底部段落 –