2010-06-17 12 views
8

मैं कक्षा को COM संग्रह पर फिर से चलाने के लिए लिख रहा हूं, मैं wrappering हूं। मैंने देखा है कि IEnumerator<T>IDisposable बढ़ाता है, इसलिए मुझे Dispose विधि लागू करने की आवश्यकता है।आईन्यूमेरेटर: क्या खाली डिस्प्ले विधि सामान्य है?

हालांकि, मैं कुछ भी नहीं सोच सकते हैं मैं वहाँ जाते थे, के रूप में मैं केवल संग्रह (जो मैं एक foreach के अंत में निपटारा किया जा रहा नहीं चाहता) के लिए एक संदर्भ है, और इंडेक्स के लिए एक int । क्या Dispose विधि खाली छोड़ना सामान्य है?

उत्तर

15

हां, यह है।

IEnumerator<T>IDisposable लागू करता है यदि आप एक गणक बनाते हैं जिसे निपटाने की आवश्यकता होती है। चूंकि अधिकांश गणकों को निपटाने की आवश्यकता नहीं होती है, इसलिए विधि आमतौर पर खाली होगी।

वैसे, आप अपने IEnumerator को creating an iterator द्वारा आसानी से कार्यान्वित कर सकते हैं।

+0

'उपज 'के बारे में अनुस्मारक के लिए धन्यवाद। मैंने सोचा कि एक आसान तरीका था। –

+2

वैसे, 'उपज' कारणों में से एक है कि 'आईएनयूमेरेटर ' लागू 'आईडीस्पोज़ेबल' - '' का उपयोग कर 'कथन या' आखिरकार 'ब्लॉक' निपटान 'में चला जाता है। – SLaks

+0

वीबी.नेट उपयोगकर्ताओं के लिए, ध्यान दें कि 'यील्ड' के लिए विजुअल स्टूडियो 2012 या उच्चतर की आवश्यकता है। – jrh

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