"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > लैम्ब्डा के भाव पुनरावृत्ति चर के अंतिम मूल्य पर कब्जा क्यों करते हैं, और इससे कैसे बचा जा सकता है?

लैम्ब्डा के भाव पुनरावृत्ति चर के अंतिम मूल्य पर कब्जा क्यों करते हैं, और इससे कैसे बचा जा सकता है?

2025-02-06 पर पोस्ट किया गया
ब्राउज़ करें:333

Why Do Lambda Expressions Capture the Final Value of Iteration Variables, and How Can This Be Avoided?

] ] हालांकि, सीधे लैम्बडास में पुनरावृत्त चर का उपयोग करने से बाद में अप्रत्याशित व्यवहार हो सकता है।

]

निम्नलिखित कोड पर विचार करें:

के लिए (int i = 0; i कंसोल.विटलाइन (i); क्रियाएं। } foreach (क्रियाओं में var क्रिया) { कार्रवाई(); }

लोग सोच सकते हैं कि प्रत्येक लैम्ब्डा i के संबंधित मूल्य को प्रिंट करेगा। हालांकि, सभी लैम्बडास बंद होने के कारण एक ही कैप्चर संदर्भ I के लिए साझा करते हैं।

for (int i = 0; i  Console.WriteLine(i);
    actions.Add(action);
}

foreach (var action in actions) {
    action();
}
] ]

के लिए (int i = 0; i कंसोल.विटलाइन (j); क्रियाएं। } foreach (क्रियाओं में var क्रिया) { कार्रवाई(); }

] ] इसके बजाय, आवश्यक मूल्यों को सही ढंग से पकड़ने के लिए स्थानीय चर बनाने पर विचार करें।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3