I私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);
私は2つの候補方法 のどちらが最も特異的であることがエラーを取得します。しかし、私はMaybe<T>
が となると思ったのですが、より多くより具体的にはT
かそれとも正しくありませんか?
EDIT
私は明示的に拡張メソッド を呼び出す場合ので、それはcuriouserを取得します。
MessageBus.SubscribeTo(source, bus);
そして、それが動作し、正しい方法を選びます。それが唯一の第二の方法が適用される今だと...
source.Subscribe<string>(bus);
:
あなたはそれを動作させることができます: 'パブリック静的IDisposableをTは( このIObservable 、観察、 MessageBusバス)登録:たぶん' –
2kay
Tはたぶん –
bradgonesurfing
2kay @ジェネリック制約することはできませんが、の一部ではありません候補の解決プロセスは、動作しませんので、 – SWeko