Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में dispose() और finalize() के बीच अंतर

Dispose() विधि

  • यह विधि IDisposable इंटरफेस में परिभाषित होती है।
  • इसे उपयोगकर्ता द्वारा स्पष्ट रूप से कॉल करना पड़ता है।
  • जब इसे कॉल किया जाता है, तो यह अनमैनेज्ड संसाधनों को तुरंत मुक्त करने में मदद करता है।
  • इसे तब लागू किया जा सकता है जब कोई close() विधि मौजूद हो।
  • यह एक public विधि के रूप में घोषित होती है।
  • यह तेज़ होती है और ऑब्जेक्ट को तुरंत डिस्पोज़ कर देती है।
  • चूंकि यह तुरंत कार्य करती है, इसलिए यह प्रदर्शन को प्रभावित नहीं करती।

Finalize() विधि

  • यह Object क्लास में परिभाषित एक विधि है (C# में java.lang.Object नहीं)।
  • इसे गार्बेज कलेक्टर द्वारा स्वचालित रूप से कॉल किया जाता है।
  • यह ऑब्जेक्ट नष्ट होने से ठीक पहले अनमैनेज्ड संसाधनों को मुक्त करने में मदद करती है।
  • इसे अनमैनेज्ड संसाधनों को प्रबंधित करने के लिए लागू किया जाता है।
  • यह protected होती है (C# में private नहीं)।
  • यह dispose() की तुलना में धीमी होती है।
  • चूंकि यह धीमी है, इसलिए यह वेबसाइटों या एप्लिकेशन के प्रदर्शन को प्रभावित कर सकती है।

मुख्य अंतर सारांश

विशेषताDispose()Finalize()
आह्वानमैन्युअल (उपयोगकर्ता द्वारा)स्वचालित (GC द्वारा)
गतितेज़धीमी
प्रदर्शन प्रभावनहींहाँ
एक्सेस मॉडिफायरpublicprotected
इंटरफेस/क्लासIDisposable इंटरफेसObject क्लास

सर्वोत्तम अभ्यास: हमेशा Dispose() पैटर्न का उपयोग करें और using स्टेटमेंट के साथ अनमैनेज्ड संसाधनों को तत्काल मुक्त करें। Finalize() केवल बैकअप के रूप में कार्य करता है।

  1. - जावा में sleep() और wait() मेथड में अंतर

    इस पोस्ट में, हम जावा में sleep और wait मेथड के बीच अंतर को समझेंगे।Waitयह Object क्लास से संबंधित है।यह मेथड सिंक्रोनाइज़ेशन होने पर लॉक जारी करता है।यह एक स्टैटिक मेथड नहीं है।इसे केवल सिंक्रोनाइज़्ड कॉन्टेक्स्ट से बुलाया जाना चाहिए।इस मेथड के तीन ओवरलोडेड मेथड्स हैं, अर्थात्wait()wait(long timeou

  1. - Go और Java में अंतर

    GoGo एक प्रक्रियात्मक प्रोग्रामिंग भाषा है। प्रोग्राम पैकेज का उपयोग करके असेंबल किए जाते हैं। यह डायनामिक भाषाओं के समान पैटर्न को अपनाने वाले वातावरण का समर्थन करता है।JavaJava एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है। Java काफी तेज, विश्वसनीय और सुरक्षित है। यह सबसे व्यापक रूप से उपयोग की जाने व

  1. - Python में मेथड और फ़ंक्शन के बीच अंतर

    फ़ंक्शन एक फ़ंक्शन एक विशिष्ट कार्य को पूरा करने के लिए कोड का एक ब्लॉक है, जिसमें अपना स्वयं का स्कोप होगा और नाम से बुलाया जाता है। सभी फ़ंक्शन में शून्य (कोई नहीं) तर्क या एक से अधिक तर्क हो सकते हैं। बाहर निकलने पर, एक फ़ंक्शन एक या अधिक मान वापस कर सकता है या नहीं भी कर सकता है। बुनियादी फ़ंक