我有我的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