2010-06-01 9 views
6

मैं सी # करने के लिए नया हूँ और क्या निम्नलिखित समारोहC# मानकों पर सवाल खड़ा

public bool parse(String s) 
    { 
     table.Clear(); 
     return parse(s, table, null); 
    } 

जहां मेज एक शब्दकोश है में चल रही समझने में मदद की जरूरत है। मैं देख सकता हूं कि यह रिकर्सिव है लेकिन पार्स को तीन पैरा कब पारित किया जा रहा है जब इसे केवल एक स्ट्रिंग लेने के लिए परिभाषित किया जाता है?

संपादित करें: मैं एक प्रश्न कैसे हटा सकता हूं? पार्स ओवरलोड किया गया है फेसपाल्म

+4

एक और 'पार्स' विधि है जो 3 पैरामीटर लेती है। यदि आप विजुअल स्टूडियो में हैं, तो उस पर राइट-क्लिक करें और "परिभाषा पर जाएं" चुनें –

+1

प्रश्न को हटाने की कोई आवश्यकता नहीं है। आपको नीचे दिए गए उत्तरों में से एक को स्वीकार करना चाहिए जो नोट करता है कि यह अधिभारित है क्योंकि यह प्रश्न का उचित उत्तर है। डाउनवॉटर ऑफसेट करने के लिए –

+0

+1; क्योंकि अधिभार एक पूरी तरह से वैध वस्तु है जिसके बारे में भ्रमित होना है – JYelton

उत्तर

7

यह parse ओवरलोड हो गया है जो 3 तर्क स्वीकार करता है।

0

आपके कोड में एक और परिभाषा होनी चाहिए जिसमें एक पार्स विधि है जो तीन मानकों को स्वीकार करती है। वापसी के साथ लाइन पर "पार्स" पर राइट क्लिक करें और इसे खोजने के लिए दृश्य स्टूडियो में "परिभाषा पर जाएं" का चयन करें।

3

नहीं, यह रिकर्सिव नहीं है।

यह एक पूरी तरह से अलग कार्य है।

सी # में, और सी ++ में, विभिन्न कार्यों का एक ही नाम हो सकता है। इसे 'ओवरलोडिंग' कहा जाता है

0

कक्षा आधारित ऑब्जेक्ट ओरिएंटेड भाषाओं में विधि अधिभार एक बहुत उपयोगी टूल है। तरीके फ़ंक्शंस की तरह हैं (उनके पास पैरामीटर हैं, वे शून्य मानते हैं जब तक वे शून्य नहीं होते हैं और वे कुछ चीजें करते हैं), लेकिन वे एक वर्ग (यदि वे स्थैतिक हैं) या ऑब्जेक्ट का हिस्सा हैं। एक विधि हस्ताक्षर द्वारा एक विधि की पहचान की जाती है। यदि आप वर्ग या वर्ग की वस्तुओं के लिए समान नाम वाले दो विधियों को परिभाषित करते हैं, लेकिन पैरामीटर सूची अलग है, तो वे एक ही नाम के साथ दो अलग-अलग विधियां बन जाते हैं।

लाभ: 1.) यदि कुछ विधियां मूल रूप से वही कर रही हैं, तो आप इसे शुरू से ही जान लेंगे, क्योंकि आप उन्हें बिल्कुल वही नाम देते हैं। 2.) आप सीडी

पर कई समस्याओं को हल करने के लिए अधिभार का उपयोग कर सकते हैं, यदि आप पार्स ("foo") कहलाते हैं तो रिकर्सिविटी होगी, क्योंकि वह कॉल करेगा एक ही समारोह

0

पार्स फ़ंक्शन ओवरलोडिंग है। समान कार्य ओवरलोड करने में पैरामीटर पर निर्भर विभिन्न कार्य कर सकते हैं।

3 तर्कों को छोड़कर दूसरा पार्स विधि।

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