我有我的MessageBus
以下擴展方法:C#專業化
public static class MessageBusMixins
{
public static IDisposable Subscribe<T>(
this IObservable<T> observable,
MessageBus bus)
where T:class
{
...
}
public static IDisposable Subscribe<T>(
this IObservable<Maybe<T>> observable,
MessageBus bus)
{
...
}
}
它編譯罰款。然而,當我嘗試使用它:
IObservable<Maybe<string>> source = ...;
MessageBus bus = ...;
source.Subscribe(bus);
我得到的錯誤,無論是兩個候選方法 是最特殊的。不過,我認爲Maybe<T>
會 是更多具體比T
還是那不正確?
編輯
它變得不尋常了,因爲如果我調用擴展方法 明確,那麼:
MessageBus.SubscribeTo(source, bus);
然後,它的工作原理,並挑選正確的方法。
你可以把它按預期工作:'公共靜態IDisposable的訂閱( 此的IObservable 觀察到, MessageBus總線),其中T:也許' –
2kay
,T不能或許 –
bradgonesurfing
@ 2kay通用約束不是的一部分候選人解決過程中,這樣不會起作用 – SWeko