2013-03-14 11 views
9

ठीक है, मैं 'लैम्ब्डा अभिव्यक्ति' विषय (अध्याय 17; प्रतिनिधियों, सी # सिंटेक्टिकल शुगर प्रतिनिधियों के लिए) के माध्यम से जा रहा हूं।लैम्ब्डा अभिव्यक्तियां: कंपाइलर व्यवहार

  1. फील्ड्स सभी स्थानीय चर कि लैम्ब्डा अभिव्यक्ति में पहुँचा दिया है स्टोर करने के लिए: जेफ़री कि सी # संकलक पृष्ठभूमि है जो निम्न में एक नया गैर स्थैतिक कक्षा बनाता है कहा गया है।
  2. एक विधि जिसके शरीर में लैम्ब्डा अभिव्यक्ति होती है और जिसका हस्ताक्षर/वापसी प्रकार उस प्रतिनिधि से मेल खाता है जिसके लिए लैम्ब्डा एक्सप्रेसिन का उपयोग किया गया है।

मैं निम्नलिखित दो प्रश्नों:

  1. मैं एक छोटे से अपने आप को डिबगिंग किया और देखा कि लैम्ब्डा अभिव्यक्ति एक स्थानीय चर के मूल्य को संशोधित करता है, तो (एक विधि में लैम्ब्डा Expresison किया जा रहा है परिभाषित में प्रयोग किया जाता है), नया मूल्य अभिव्यक्ति निकाय के बाहर भी दिखाई देता है। अभिव्यक्ति पर विचार करना संभवतः एक अलग वर्ग में कैसे संभव है?

  2. जब उत्सर्जित वर्ग को स्टेटिक क्लास द्वारा पूरी तरह से किया जा सकता है तो उत्सर्जित वर्ग को गैर-स्थैतिक क्यों होना चाहिए?

मुझे आशा है कि यह एक बहुत ही सरल अवधारणा है कि मैं समझ पा रहा हूं नहीं है।

मुझे बताएं कि मुझे और विवरण प्रदान करने की आवश्यकता है या नहीं।

उत्तर

5

सबसे पहले मेरे पास एक ही सवाल था, कुछ दिन पहले।

Closure captured variable modifies the original as well

दूसरा, यह एक स्थिर वर्ग बनाने की बात क्या है? वैसे भी केवल एक ऑब्जेक्ट बनाया गया है, और उस ऑब्जेक्ट को एप्लिकेशन जीवनकाल को ट्राउटआउट नहीं करना है।

the new value is reflected outside the expression body too. How is this possible considering the expression is actually in a different class.

बात यह है कि एक ही वस्तु Anonymus विधि है, साथ ही Anonymus विधि के बाहर स्थानीय चर द्वारा दोनों संदर्भित किया जा रहा है, इसलिए यह जहां आप इसे बदल से कोई फर्क नहीं पड़ता है, तो आप को बदलने वही चीज।

इसके अलावा, टिम गुडमैन द्वारा दिए गए प्रश्न में मैंने जो प्रश्न पूछा है, वह आपको दिखाता है कि क्या करना है, ताकि आपके अनामिक विधि के अंदर एक नई वस्तु बनाकर परिवर्तनों को हर जगह परिलक्षित किया जा सके।

+0

शानदार उत्तर। धन्यवाद। – astraldust

+0

आपका स्वागत है, चीयर्स। – Freeman

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