मेरा प्रश्न निम्न कोड में विस्तृत है करने के लिए एक मल्टीकास्ट प्रतिनिधि का उपयोग करना - कारण मैं इस पूछ रहा हूँ है कि मैं प्रतिनिधियों के साथ प्रयोग कर रहा हूँ:श्रृंखला कार्यों
//create the delegate
delegate int del(int x);
class Program {
static void Main(string[] args) {
Program p;
p = new Program();
del d = p.a;
d += p.b;
d += p.c;
d += p.d;
d += p.e;
Console.WriteLine(d(10)); //<<was hoping it would be 10+2+3+4+5+6
Console.WriteLine("press [enter] to exit");
Console.ReadLine();
}
private int a(int x) { Console.WriteLine("a is called"); return x + 2; }
private int b(int x) { Console.WriteLine("b is called"); return x + 3; }
private int c(int x) { Console.WriteLine("c is called"); return x + 4; }
private int d(int x) { Console.WriteLine("d is called"); return x + 5; }
private int e(int x) { Console.WriteLine("e is called"); return x + 6; }
}
16 लौटा दिया जाता है ....
सभी कार्यों आग, विभिन्न संदेश के रूप में "एक कहा जाता है" आदि सभी console
को मुद्रित करने के लेकिन केवल राशि पिछले समारोह e
से लौटे दिया जाता है - मैं बक में यह सोचते हैं रहा हूँ का मैदान वे लौट रहे हैं लेकिन फिर अधिलेखित?
इस तरह के रिकर्सन प्राप्त करने के लिए, मुझे लगता है कि आपको पिछले प्रतिनिधि को पैरामीटर के रूप में पास करना होगा। अन्यथा, आप केवल 10 + 6 = 16. –
@ डेविन ट्रायॉन जोड़ रहे हैं जो वास्तव में रिकर्सन नहीं है। कोई फ़ंक्शन स्वयं कॉल नहीं कर रहा है; यह सिर्फ कार्यों की श्रृंखला है। – Servy
@ सर्वी आह हाँ, "नेस्टेड" कार्यों की तरह अधिक? क्या इसके लिए कोई कार्यात्मक भाषा नाम है? –