ओवरलोड मैं दो विस्तार के तरीकों है: केवल अगर मैं स्पष्ट रूप से IEnumerable प्रकार निर्दिष्टएक्सटेंशन तरीकों पसंद
List<Customer> collection2 = new List<Customer>();
collection2.ShouldHave(); //first overload is chosen
IEnumerable<Customer> collection3 = new List<Customer>();
collection3.ShouldHave(); //second overload is chosen
दूसरा अधिभार चुना जाता है:
public static IPropertyAssertions<T> ShouldHave<T>(this T subject)
{
return new PropertyAssertions<T>(subject);
}
public static IPropertyAssertions<T> ShouldHave<T>(this IEnumerable<T> subject)
{
return new CollectionPropertyAssertions<T>(subject);
}
अब मैं कुछ कोड है जो इसे इस्तेमाल करता है लिखते हैं। क्या दोनों मामलों में दूसरे अधिभार को चुनने का कोई तरीका है?
'संग्रह 1' और' संग्रह 2' के बीच कोई अंतर नहीं होगा। वे बिल्कुल वही कोड हैं, केवल अलग-अलग लिखे गए हैं। – svick
@svick, हाँ, लेकिन मैं सभी वाक्यविन्यास विकल्पों को दिखाना चाहता था – SiberianGuy
ध्यान दें कि तथ्य यह एक विस्तार विधि है अप्रासंगिक है; अधिभार संकल्प इसे एक सामान्य स्थैतिक विधि की तरह संभालता है। –