私には次の拡張メソッドがありますMessageBus
:
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);
2つの候補メソッドのどちらも最も具体的ではないというエラーが表示されます。しかし、私はそれMaybe<T>
がより具体的であると思いましたか、T
それとも正しくありませんか?
編集
拡張メソッドを明示的に呼び出すと、次のようになります。
MessageBus.SubscribeTo(source, bus);
次に、それは機能し、正しい方法を選択します。