2010-12-17 24 views
3

它去哪了?F#IEvent.create

let triggerFindNext,findNextEvent = IEvent.create<EventArgs>() 

現場,構造函數或成員「創造」是沒有定義

也許我一定要添加一些框架呢?

+0

[如何在F#中創建.NET兼容事件?](http://stackoverflow.com/questions/904235/how-to -create網兼容事件,在-F) – adrianbanks 2010-12-17 10:09:31

回答

6

IEvent.create函數已被棄用。創建事件的新方法是創建Event類型的實例。在最簡單的情況下,你可以寫眼前這個:

let evt = new Event<EventArgs>() 

// Trigger event (instead of first element of the tuple) 
evt.Trigger() 
// Returns IEvent<EventArgs> value (instead of second element of the tuple) 
evt.Publish 

這代表使用IEvent<_>值事件(如果你公開爲屬性不產生.NET兼容事件),它使用通用Handler<_>代表從F#庫。

(如果你想生成.NET從C#使用兼容的事件,那麼你需要添加CLIEvent屬性,你可以使用的Event變種,需要委託作爲在the answer already mentioned by others描述泛型參數)

編輯:我在這裏發佈了一個更完整的F#代碼片段(使用更好的格式):http://fssnip.net/1d