2010-02-22 13 views
6

मैं एक .NET उपयोगकर्ता नियंत्रण बना रहा हूँ। क्या मुझे अपने उपयोगकर्ता नियंत्रण के लिए IDisposable इंटरफ़ेस को लागू करने की आवश्यकता है?क्या मुझे उपयोगकर्ता नियंत्रण के लिए आईडीस्पोज़ेबल लागू करना चाहिए?

उत्तर

13

Control पहले से ही लागू करता IDisposable

आप केवल अगर आप कुछ अप्रबंधित संसाधनों निपटान के लिए की जरूरत है ओवरराइड कार्यान्वयन की जरूरत है।

तो सरल उत्तर: नहीं, शायद नहीं।

2

केवल तभी यदि आपके पास बाहरी संसाधन हैं जिन्हें तुरंत रिलीज़ करने की आवश्यकता है। अन्यथा, उन संसाधनों को तब तक रखा जा सकता है जब तक कि वस्तु अचयनित न हो, और संभवतया उससे अधिक हो।

7

वास्तव में, नियंत्रण पहले से ही IDisposable लागू करता है। बेस कार्यान्वयन आमतौर पर .esigner.cs फ़ाइल में जेनरेट किया जाता है यदि आपने विजुअल स्टूडियो का उपयोग कर नियंत्रण की ऑटो-पीढ़ी का कोई भी प्रकार किया है। यदि आपको आवश्यकता हो तो आपको केवल बेस कार्यान्वयन में जोड़ना होगा।

इसमें virtual Dispose method है जो एक बूलियन ध्वज लेता है। यदि सही है, तो इंटरफ़ेस के माध्यम से निपटान कहा गया था। यदि गलत है, तो निपटान को अंतिमकर्ता के माध्यम से बुलाया गया था।

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