簡體   English   中英

如何將 Rx Observable 與通用 EventHandler 一起使用<T> ?

[英]How to use Rx Observable with generic EventHandler<T>?

以下代碼有效

var mouseTracker = Observable.FromEventPattern<MouseEventArgs>(form1, "MouseMove");
//for Form1_MouseMove(object sender, MouseEventArgs e)

但是如何讓 Observable.FromEventPattern 接受 EventHandler <T> ? 就像是

var mouseTracker = Observable.FromEventPattern<EventHandler<StockQuote>>(_board, "QuoteUpdated");
//for board_QuoteUpdated(object sender, StockQuote stockQuote)

編輯

來自 Gluck 的回答有效。 我需要將 FromEventPattern 更改為 FromEvent。

var quoteObserver = Observable.FromEvent<EventHandler<StockQuote>, StockQuote>(
h => (_, sq) => h(sq),
eh => _board.QuoteUpdated += eh,
eh => _board.QuoteUpdated -= eh);

沒有泛型類型EventArgs<T>這樣的東西。

假設您需要為不遵循標准事件模式的事件創建一個 observable(在您的情況下,這意味着StockQuote類型不擴展EventArgs ),則不能使用FromEventPattern

但您仍然可以使用FromEvent

IObservable<StockQuote> obs = Observable.FromEvent<QuoteUpdatedDelegate, StockQuote>(
    h => (_, sq) => h(sq),
    eh => _board.QuoteUpdated += eh,
    eh => _board.QuoteUpdated -= eh);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM