मुझे एक मुश्किल तरीका है कि किसी विधि को एक विधि विधि के रूप में कार्यान्वित करना और स्टैंड-अलोन विधि के रूप में विधि को कार्यान्वित करना कब होता है। यह निर्धारित करने में लोगों का पालन करने के कुछ सर्वोत्तम अभ्यास क्या हैं?विस्तार के तरीके बनाम नियमित तरीके - सर्वोत्तम अभ्यास विचार
उत्तर
एक विस्तार विधि का उपयोग करें, तो निम्न स्थितियों में से कोई भी सत्य हैं:
- तुम एक प्रकार पर एक विधि की जरूरत है और आप स्रोत स्वामी नहीं हैं।
- आपको एक प्रकार की विधि की आवश्यकता है, आप स्रोत के स्वामी हैं, और प्रकार एक इंटरफ़ेस है।
- तुम एक प्रकार पर एक विधि की जरूरत है, तो आप ही स्रोत कर , लेकिन विधि जोड़ने अवांछित युग्मन पैदा करता है। *
अन्यथा, आप वास्तविक प्रकार पर ही कोई वास्तविक विधि का उपयोग करना चाहिए।
मुझे नहीं लगता कि यह उस वर्ग या संरचना के लिए एक विस्तार विधि बनाने के लिए पूरी तरह से समझ में आता है जिसके लिए आप स्रोत हैं - नियमित विधि पर्याप्त होने पर पाठकों को विस्तार विधि के साथ भ्रमित क्यों करें?
सुझाई पढ़ने:Framework Design Guidelines: Extension Methods
* कल्पना कीजिए कि आप एक विशेष प्रकार के सुविधा तरीकों जोड़ना चाहते थे लेकिन विधानसभाओं या प्रकार है कि एपीआई का हिस्सा नहीं होना चाहिए करने के लिए निर्भरता बनाने के लिए नहीं करना चाहती। आप इसे प्रबंधित करने के लिए विस्तार विधियों का उपयोग कर सकते हैं।
Try this Stackoverflow post for a discussion about extension method best practices.
मेरे दृष्टिकोण से मैं विस्तार तरीकों का उपयोग जब मैं एक विशेष प्रकार के लिए उपयोगिता कार्यों के एक बहुत कुछ है।
मुझे लगता है कि लगता है ...
string.ExtensionMethod();
से क्लीनर लग रहा है ...
StringHelper.ExtensionMethod("string to do something with");
लेकिन जब आप उस व्यक्ति नहीं थे जिसने '' 'एक्सटेंशन मोड()' '' लिखा था, और आधिकारिक सी # दस्तावेज़ों में '' एक्सटेंशन 'विधि '' 'खोजने का प्रयास करने में कुछ समय व्यतीत किया, केवल यह समझने के लिए कि आप देख रहे थे गलत जगह। –
- 1. आभासी विस्तार के तरीके?
- 2. विस्तार के तरीके - नामस्थान
- 3. विस्तार के तरीके संगत
- 4. विस्तार के तरीके निर्भरता छुपाएं?
- 5. विस्तार के तरीके क्या हैं?
- 6. आरडीएलसी अभिव्यक्ति विस्तार के तरीके
- 7. मानक तरीके बनाम एक्सटेंशन के तरीके
- 8. क्या जादू तरीके PHP में सर्वोत्तम अभ्यास हैं?
- 9. कार्य बनाम स्टेटिक तरीके
- 10. कंस्ट्रक्टर्स बनाम फैक्टरी के तरीके
- 11. डेकोरेटर पैटर्न और विस्तार के तरीके
- 12. वाइल्डकार्ड बनाम जेनेरिक तरीके
- 13. LINQ तरीके एक्सटेंशन तरीके हैं?
- 14. सी ++ सर्वोत्तम अभ्यास: रिटर्निंग संदर्भ बनाम ऑब्जेक्ट
- 15. सर्वोत्तम अभ्यास: वेब एपीआई नियंत्रकों में त्रुटियों और अपवाद को संभालने के तरीके?
- 16. उत्पादक तरीके बनाम नामित वर्ग
- 17. जाओ तरीके: एक बनाम कई
- 18. एचटीएमएल ईमेल लिखते समय सर्वोत्तम अभ्यास और विचार
- 19. सिंगलटन इंस्टेंस बनाम कक्षा के तरीके
- 20. उदाहरण के तरीके बनाम ऑब्जेक्टिव-सी
- 21. कक्षा कक्षा - उदाहरण बनाम कक्षा के तरीके
- 22. इनिटविथ विधि बनाम फैक्टरी के तरीके
- 23. तरीके?
- 24. तरीके
- 25. वीएस समाधान, परियोजना बनाम डीएलएस सर्वोत्तम अभ्यास
- 26. LINQ बनाम लैम्ब्डा बनाम अज्ञात तरीके बनाम बनाम
- 27. विस्तार के तरीके: बहुत अधिक उपयोग करते समय प्रदर्शन समस्या?
- 28. विस्तार के तरीके - IsNull और IsNotNull, अच्छा या बुरा उपयोग?
- 29. Android ऐप्स को क्रैश करने के सर्वोत्तम तरीके क्या हैं?
- 30. ऐतिहासिक डेटा के भंडारण को सर्वोत्तम तरीके से कैसे संभालें?
एक अन्य मामले मैं जोड़ना होगा: आप एक प्रकार पर एक विधि की जरूरत है आप स्रोत के मालिक हैं, लेकिन विधि अन्यथा एक युग्मन बनाना चाहती है जो वांछित नहीं है। – JaredPar
@ जेरेड - अच्छा बिंदु - मैं इसे जोड़ दूंगा! –