मैं सी # 3.0 में विस्तार विधियों के बारे में पढ़ रहा था। जिस पाठ को मैं पढ़ रहा हूं, उसका तात्पर्य है कि कक्षा में एक विधि के रूप में एक ही हस्ताक्षर के साथ एक विस्तार विधि निष्पादन के क्रम में दूसरी होगी - अर्थात, मुहरबंद वर्ग में विधि को बुलाया जाता है। यदि ऐसा है, तो आप मुहरबंद वर्ग का विस्तार कैसे कर सकते हैं?यदि एक विस्तार विधि में मुहरबंद वर्ग में एक विधि के समान हस्ताक्षर है, तो कॉल प्राथमिकता क्या है?
उत्तर
वास्तव में, वास्तविक विधि विस्तार विधि पर प्राथमिकता लेती है। और बस इसे स्पष्ट करने के लिए - "निष्पादन का आदेश" सुझाव देता है कि दोनों को बुलाया जा सकता है; केवल मूल विधि लागू की जाएगी। शायद एक और नाम/हस्ताक्षर चुनें; आप बंदर-पैच के विस्तार विधियों का उपयोग नहीं कर सकते हैं, अगर यह आपका इरादा है।
यदि कुछ बेस-क्लास/इंटरफेस (प्रकार के उपकरण) हैं इस विधि के पास नहीं है, तो आप इसे वहां पर डाल सकते हैं ...?
अन्य विधि हस्ताक्षर का उपयोग करें। विस्तार विधियों का अर्थ है कि आप सीलबंद कक्षा को नई कार्यक्षमता के साथ विस्तारित कर रहे हैं और पहले से लागू किए गए लोगों को ओवरराइड नहीं कर रहे हैं।
विस्तार विधियों में उदाहरण के सदस्यों के साथ "छुपाएं-नाम" अर्थशास्त्र है। इसका अर्थ यह है कि एक प्रकार पर किसी भी सुलभ उदाहरण सदस्य हमेशा एक ही नाम के साथ किसी भी एक्सटेंशन विधियों को छाया करेगा, भले ही एक्सटेंशन विधि बेहतर फिट हो। नतीजतन, यदि किसी इंस्टेंस सदस्य को किसी भी प्रकार के एक्सटेंशन के रूप में एक ही नाम के साथ जोड़ा जाता है, तो विस्तार विधि को अनावश्यक रूप से प्रस्तुत किया जा सकता है।
अधिक जानकारी के लिए, इस पोस्ट पर एक नज़र डालें: Extension Methods Best Practices (Extension Methods Part 6)
- 1. क्या मूल विधि एक निजी विधि कॉल कर सकती है?
- 2. इस विधि हस्ताक्षर में इलिप्सिस (...) क्या है?
- 3. एक विस्तार विधि में एक लैम्ब्डा कब करता है?
- 4. "() वी" वर्ग हस्ताक्षर में क्या मतलब है?
- 5. बाद के संस्करण में एक वर्ग विधि को कॉल करें
- 6. क्या यह एक init विधि में, एक init विधि को कॉल करना ठीक है?
- 7. एक वर्ग एक ही हस्ताक्षर की विधि के साथ लक्षण क्यों बढ़ा सकता है?
- 8. कॉल सुपर वर्ग विधि स्वतः
- 9. क्या एक गैर एसिंक विधि में एक प्रतीक्षा योग्य विधि को कॉल करना संभव है?
- 10. एक ही विधि में एक विधि को कॉल करना एक ही PHP वर्ग
- 11. एक्शनबैरशेलॉक: एक विधि कॉल
- 12. कैसे करता है, तो विधि एक विशेषता
- 13. एक विधि सी # में एक वर्ग के एक सदस्य चर
- 14. क्या एक आंतरिक कक्षा में कोई विधि अभिभावक वर्ग विधि तक पहुंच सकती है?
- 15. अमूर्त वर्ग में getClass() संदिग्ध विधि कॉल
- 16. एक विधि कॉल
- 17. सी # विस्तार विधि यह जांचने के लिए कि क्या एक गणना में ध्वज सेट है
- 18. सी # में एक विधि समूह क्या है?
- 19. क्या एक विस्तार विधि नकली/नकली करना संभव है?
- 20. रूबी: क्या एक विधि है जो स्वयं के भीतर से एक विधि को कॉल करने के लिए है (सुपर के समान)?
- 21. सी # एक्सटेंशन विधि प्राथमिकता
- 22. विस्तार विधियों के बीच अस्पष्ट विधि कॉल
- 23. स्कैला - विधि प्राथमिकता
- 24. विधि हस्ताक्षर
- 25. जावा में एक विधि पकड़ो है?
- 26. मैं, के रूप में वर्ग विधि और एक अन्य वर्ग विधि
- 27. विस्तार विधि के साथ एक विधि ओवरराइड (या छाया)?
- 28. पाइथन विधि ओवरराइडिंग, हस्ताक्षर पदार्थ करता है?
- 29. एक विस्तार विधि बनाने के लिए सही कब है?
- 30. क्या रेल में बहुवचन के लिए एक सहायक विधि है?
हा हा! बंदर-पैच ... यह एक नया है। ठीक है, धन्यवाद, मैं सोच रहा था कि अगर मैं सही था तो यह मुहरबंद हो जाएगा और वह सीलबंद का उपयोग करने के पूरे बिंदु को हरा देगा। –
@ स्कॉट - जिसे बतख-पंचिंग के रूप में भी जाना जाता है। यह कोई मज़ाक नहीं है। –