2015-11-05 136 views
2

System.Reactive.Subjects.Subject<T>System.Reactive.Subjects.ReplaySubject<T>類有什麼區別?主題<T>和ReplaySubject <T>之間的主要區別是什麼?

一個不會從另一個派生,但它們具有相同的描述並在MSDN中實現相同的接口。

+4

閱讀https://msdn.microsoft.com/zh-CN/library/hh242970(v=vs.103).aspx的底部段落 –

回答

8

把這個代碼:

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會記住未來訂閱的值(當它「重新播放」值時)。

相關問題