2009-08-24 14 views
5

मेरे शिक्षक ने हमें जांच करने के लिए कहा कि एक्सटेंशन कक्षा क्या थी लेकिन मुझे एमएसडीएन या Google पर कुछ भी नहीं मिल रहा है। कोई मदद?एक विस्तार कक्षा क्या है?

+0

क्या आपका मतलब विस्तार विधियां है? ऐसा नहीं लगता कि विस्तार कक्षाएं सी # में मौजूद हैं जबतक कि आप व्युत्पन्न कक्षाओं के प्रति प्रतिक्रिया नहीं दे रहे हैं? – James

+1

क्या आप वाकई "एक्सटेंशन क्लास" थे और "एक्सटेंशन विधि" नहीं थे? –

उत्तर

17

औपचारिक सी # शब्दावली में "एक्सटेंशन क्लास" जैसी कोई चीज़ नहीं है। इसका मतलब हो सकता है कि extension methods परिभाषित करने वाला वर्ग (जो कुछ भी विशेष नहीं है, यह सिर्फ एक साधारण static वर्ग है।)

+0

मुझे इस प्रश्न के बारे में भी संदेह था। अच्छा, जानना अच्छा है। धन्यवाद! :) –

2

एक कक्षा जिसमें extension methods है।

विस्तार तरीकों को आप के बिना मौजूदा प्रकार के तरीकों "जोड़ें" एक नया व्युत्पन्न प्रकार, कंपाइल, या अन्यथा मूल प्रकार संशोधित बनाने सक्षम करें। एक्सटेंशन विधियां एक विशेष प्रकार की स्थैतिक विधि है, लेकिन उन्हें विस्तारित प्रकार पर इंस्टेंस विधियों के रूप में कहा जाता है। सी # और विजुअल बेसिक में लिखे गए क्लाइंट कोड के लिए, एक्सटेंशन विधि को कॉल करने और को उन तरीकों से परिभाषित करने के तरीके के बीच कोई स्पष्ट अंतर नहीं है।

7

आपके शिक्षक के बारे में भी बात कर partial classes किया जा सकता है ...

2

तकनीकी तौर पर एक "विस्तार वर्ग" कुछ भी नहीं है। स्थानीय भाषा में इसे किसी वर्ग द्वारा संदर्भित किया जा सकता है जिसे extension methods स्टोर करने के लिए डिज़ाइन किया गया है। विस्तार विधियां विधियों के उदाहरण विधियों की तरह दिखने के लिए उपयोग की जाती हैं, लेकिन कुछ स्थिर कार्यक्षमता को बढ़ाने और समाहित करने के लिए प्रदान की जाने वाली स्थिर कक्षा में वास्तव में स्थैतिक विधियां हैं। वे विशेष रूप से उपयोगी होते हैं जब आप उस प्रकार की कुछ कार्यक्षमता को बढ़ाने की कोशिश कर रहे हैं जिसे आप सीधे संशोधित नहीं कर सकते हैं और एक विधि जोड़ सकते हैं। इसके अतिरिक्त, उन्हें विशिष्ट इंटरफ़ेस द्वारा प्रदान की गई विधियों का उपयोग करके कार्यक्षमता बढ़ाने के लिए सामान्य प्रकार (विशेष रूप से .NET 3.5 ढांचे के भीतर) के साथ प्रयोग किया जाता है।

0

मुझे पता नहीं है कि एक्सटेंशन क्लास है लेकिन विस्तार विधि वहां है। सी # में इस Extension Method

0

एक एक्सटेंशन वर्ग प्रयास करें बस एक बच्चे वर्ग (इनहेरिट और आधार प्रकार या इंटरफ़ेस करने के लिए और अधिक कार्यक्षमता जोड़ने) या एक स्थिर वर्ग हो सकता है।

संबंधित मुद्दे