2017-08-03 36 views
1

我已經有一些類型的發佈者 - 訂閱:如何使用動態類型而不是F#中的Object?

type Subscription<'T> = 'T -> unit 
type Subscribers = ConcurrentBag<Object> 
type Subscriptions = ConcurrentDictionary<Type, Subscribers> 
type PubSub = Subscriptions * PubSubExceptionHandler 

我想什麼來改善是ConcurrentBag<Object>(理想情況下,以ConcurrentBag<Subscription>但類型'TSubscription需要的是未知的,所以它可以」 T取代的type PubSub<'T>水平被曝光。是我使用類型約束唯一的辦法?這似乎排除使用簡單的記錄,像type Counter = {Ctr : int}作爲可以訂閱。我一直在尋找解決靜態類型約束的類型( ^T符號),但解決方案是躲避我(請忽略我使用的是可變ConcurrentBag - 不應該再黎凡特的問題。)

+3

有'Subscription'實行非通用接口,並用它收入囊中。 –

+0

無法將「和」關鍵字來解決這個問題? –

回答

相關問題