c# - I think there is an issue with IDisposable example -


संभव डुप्लिकेट:

हाय,

मैं IDisposable के उपयोग की जांच करने के लिए इसका जिक्र कर रहा हूं।

मुझे यहां विस्थापन विधि में कोई समस्या दिखाई देती है I कोड में "निपटाया" का प्रयोग केवल

  निजी शून्य निकास (bool disposing)  

विधि में किया जाता है।

मेरा मानना ​​है कि इसका इस्तेमाल "डीपोज" पद्धति को कॉल करने से पहले किया जाना चाहिए और सही कार्यान्वयन होगा

  सार्वजनिक शून्य निकालना () (यदि (!) (निपटारा) ); // यह ऑब्जेक्ट डिस्पोज विधि द्वारा साफ किया जाएगा। // इसलिए, आपको जीसी को सुप्रीम करना चाहिए। // फ़ाइनेलाइज़ेशन कतार // से इस ऑब्जेक्ट ले लीजिए और दूसरी बार निष्पादित करने से // इस ऑब्जेक्ट के लिए अंतिम रूप से कोड को रोकें। GC.SuppressFinalize (this); }}  

क्या मैं सही सोच रहा हूं?

यह देखते हुए कि का निपटान (निपटान) चेक निपटारा किसी भी तरह से चिह्नित करता है, क्यों विस्थापन () विधि में ऐसा करने में परेशान?

एकमात्र नकारात्मक पहलू यह होगा कि यदि डिस्क्ोज़ () कई बार कॉल करता है - लेकिन जब तक मुझे पता है कि यह हानिरहित है, तो जीसी.सपप्रेसफिनलाइज को कई बार कहा जा सकता है ।


Comments