2011-11-27 19 views
6

संभव डुप्लिकेट:
yield statement implementation'उपज' कीवर्ड एक वाक्य रचनात्मक चीनी है? क्या इसके कार्यान्वयन है

मैं msdn docs देखा है और यह कहते हैं: संकलक को

उपज कीवर्ड संकेत है कि में विधि जो यह प्रतीत होता है एक इटरेटर ब्लॉक है। कंपाइलर इटरेटर ब्लॉक में व्यक्त किए गए व्यवहार को लागू करने के लिए एक वर्ग उत्पन्न करता है। इटरेटर ब्लॉक में, उपज कीवर्ड को गणनाकर्ता कीवर्ड के साथ मूल्य प्रदान करने के लिए वापसी कीवर्ड के साथ एक साथ उपयोग किया जाता है।

तो इसका मतलब है yield कीवर्ड एक वाक्यात्मक चीनी और संकलक इटरेटर पैदा करने में भारी काम करता है। (क्या मैं सही हूँ?)

फिर इस वाक्य रचनात्मक चीनी के लिए जेनरेट किए गए कार्यान्वयन कोड क्या है।

+3

प्रोग्रामिंग भाषा का 99% वाक्य रचनात्मक चीनी है। आखिरकार टर्निंग पूर्णता की अवधारणा है और एक ही शिक्षा के साथ एक भाषा है जो ट्यूरिंग पूर्ण साबित हुई है। एक प्रोग्रामिंग भाषा में यह वाक्यविन्यास के बारे में सब कुछ है। – Stilgar

+0

@Stilgar +1 ha ha अच्छी टिप्पणी :) इसकी शुद्धता के बारे में निश्चित नहीं है। –

+0

सिर्फ रिकॉर्ड्स के लिए: सिंटेक्टिक सॉगर एक अच्छी चीज ™ है। – JensG

उत्तर

4

जेनरेट कोड मूल पर निर्भर करता है, लेकिन आम तौर पर एक राज्य मशीन बोलने से उत्पन्न होता है जो संग्रह की वर्तमान स्थिति का ट्रैक रखता है।

yield statement implementation, this answer एरिक लिपर्ट द्वारा और this blog post जॉन स्कीट द्वारा देखें।

+0

thanx .. और जॉन स्कीट के पोस्ट –

+1

पर उस लिंक के लिए +1 इस विषय पर रेमंड की लेखों की श्रृंखला भी देखें: http://blogs.msdn.com/b/oldnewthing/archive/2008/08/12/8849519.aspx –

+0

@EricLippert Thanx उस उत्कृष्ट लेख के लिंक के लिए :) –

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