मैं अपने 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);
मैं त्रुटि है कि दो उम्मीदवार तरीकों के न सबसे विशिष्ट हैं मिलता है। हालांकि मैंने सोचा कि Maybe<T>
T
से विशिष्ट है या यह सही नहीं है?
संपादित
क्योंकि अगर मैं विस्तार विधि स्पष्ट रूप से तो फोन यह कुरिओसेर हो जाता है:
MessageBus.SubscribeTo(source, bus);
तो यह काम करता है और सही विधि चुनता है।
आप यह काम कर सकते हैं के रूप में उम्मीद: 'जनता स्थिर IDisposable सदस्यता लें ( इस IObservable नमूदार, MessageBus बस) जहां टी: शायद ' –
2kay
टी शायद –
bradgonesurfing
@ 2kay जेनेरिक की कमी नहीं हो सकता का हिस्सा नहीं हैं उम्मीदवार संकल्प प्रक्रिया, ताकि – SWeko