अंतर के बीच अंतर () और अंतिम रूप () C # में

लेखक: Laura McKinney
निर्माण की तारीख: 2 अप्रैल 2021
डेट अपडेट करें: 16 मई 2024
Anonim
class 11 chapter 6 मोनोकौट और डाईकौट के बीच का अंतर
वीडियो: class 11 chapter 6 मोनोकौट और डाईकौट के बीच का अंतर

विषय


विधियाँ () और अंतिम रूप देती हैं () C # की विधियाँ हैं जो किसी वस्तु द्वारा रखे गए मानव रहित संसाधनों को मुक्त करने के लिए लगाई जाती हैं। डिस्पोज़ () विधि को इंटरफ़ेस आईडीसॉफ़ायर के अंदर परिभाषित किया गया है, जबकि विधि (अंतिम) को क्लास ऑब्जेक्ट के अंदर परिभाषित किया गया है। निपटान () और अंतिम रूप () के बीच मुख्य अंतर यह है कि विधि निपटाने() उपयोगकर्ता द्वारा स्पष्ट रूप से लागू किया जाना है जबकि, विधि को अंतिम रूप देने () कचरे के संग्रहकर्ता द्वारा, वस्तु के नष्ट होने से ठीक पहले, लागू किया जाता है। नीचे दिखाए गए तुलना चार्ट की सहायता से उनके बीच कुछ अन्य अंतरों का अध्ययन करते हैं।

  1. तुलना चार्ट
  2. परिभाषा
  3. मुख्य अंतर
  4. निष्कर्ष

तुलना चार्ट

तुलना के लिए आधारनिपटाना ()अंतिम रूप दें ()
परिभाषितविधि डिस्पोज़ () इंटरफ़ेस आईडीआईसोफ़ायर इंटरफ़ेस में परिभाषित किया गया है।विधि अंतिम () आईडी java.lang.object वर्ग में परिभाषित की गई है।
वाक्य - विन्याससार्वजनिक शून्य निपटान () {
// यहां कोड डिस्पोज करें
}
संरक्षित शून्य अंतिम () {
// यहाँ अंतिमकरण कोड
}
लागू विधि निपटान () उपयोगकर्ता द्वारा लागू किया गया है।विधि अंतिम रूप () कचरा कलेक्टर द्वारा लागू किया जाता है।
उद्देश्यजब भी इसे लागू किया जाता है, तो अप्रबंधित संसाधनों को मुक्त करने के लिए विधि निपटान () का उपयोग किया जाता है।विधि को अंतिम रूप देने () का उपयोग ऑब्जेक्ट के नष्ट होने से पहले अप्रबंधित संसाधनों को मुक्त करने के लिए किया जाता है।
कार्यान्वयनजब भी कोई क़रीब () विधि आती है, तो विधि निपटान () को लागू करना होता है।विधि को अंतिम रूप देना () अप्रबंधित संसाधनों के लिए लागू किया जाना है।
पहुँच निर्दिष्ट करनेवालाविधि निपटान () को सार्वजनिक घोषित किया जाता है।विधि को अंतिम रूप () निजी घोषित किया जाता है।
कार्य विधि का निपटान () तेजी से होता है और तुरंत किसी वस्तु का निपटान करता है।निपटाने की तुलना में विधि अंतिम रूप से धीमी है
प्रदर्शनविधि का निपटान () तात्कालिक कार्रवाई करता है, इसलिए वेबसाइटों के प्रदर्शन को प्रभावित नहीं करता है। विधि अंतिम () धीमी होने से वेबसाइटों के प्रदर्शन पर असर पड़ता है।


निपटान की परिभाषा ()

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

सार्वजनिक शून्य डिस्पोज़ () {// कोड यहाँ डिस्पोज़ करें}

उपरोक्त सिंटैक्स में, आप देख सकते हैं कि विधि को सार्वजनिक घोषित किया गया है। ऐसा इसलिए है क्योंकि इस पद्धति को इंटरफ़ेस आईडीआईसुपट में परिभाषित किया गया है और इसे उस वर्ग द्वारा लागू किया जाना है जो इस इंटरफ़ेस को लागू करता है। इसलिए, कार्यान्वयन वर्ग तक पहुंच प्रदान करने के लिए, विधि को सार्वजनिक घोषित किया जाता है।

इस विधि को प्रोग्राम के कोड द्वारा मैन्युअल रूप से लागू किया जाता है क्योंकि इसे लागू करने के लिए लागू किया जाता है। विधियों का प्रदर्शन तेज़ है, और यह किसी वर्ग के ऑब्जेक्ट द्वारा आयोजित संसाधनों को तुरंत मुक्त करता है।


अंतिम रूप की परिभाषा ()

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

विधि के सिंटैक्स को अंतिम रूप दें ():

संरक्षित शून्य अंतिम रूप () {// अंतिमकरण कोड यहाँ}

ऊपर सिंटैक्स में, विधि अंतिम रूप से () संरक्षित घोषित की गई है। इसके पीछे का कारण है, विधि को अंतिम रूप देना () वर्ग के बाहर से पहुंच योग्य नहीं होना चाहिए, और इसे केवल कचरा संग्राहक तक पहुंचना होगा।

अंतिम रूप () विधि प्रदर्शन की लागत को प्रभावित करती है क्योंकि यह मेमोरी को तुरंत मुक्त नहीं करता है। सी # में अंतिम विधि विध्वंसक के साथ स्वचालित रूप से कहा जाता है।

  1. विधि निपटान () एक इंटरफेस में परिभाषित किया गया है IDisposable। दूसरी ओर, विधि को अंतिम रूप () वर्ग में परिभाषित किया गया है वस्तु.
  2. विधि निपटान () को प्रोग्रामर द्वारा कोड के अंदर मैन्युअल रूप से लागू किया जाना है, जबकि विधि को अंतिम रूप देने से पहले कचरा कलेक्टर द्वारा ऑब्जेक्ट को नष्ट कर दिया जाता है।
  3. विधि निपटान को कभी भी लागू किया जा सकता है, जबकि अंतिम विधि कचरा कलेक्टर द्वारा लागू की जाती है जब यह पता चलता है कि उस वस्तु को लंबे समय तक संदर्भित नहीं किया गया है।
  4. इंटरफ़ेस आईडीआईसॉफ़री को लागू करने के बाद विधि निपटान () को एक वर्ग में लागू किया जाता है। विधि को अंतिम रूप () के लिए ही लागू किया जाना है मानव रहित संसाधन क्योंकि प्रबंधित संसाधन स्वचालित रूप से कचरा संग्रहकर्ता द्वारा मुक्त कर दिए जाते हैं।
  5. विधि डिस्पोजल () का एक्सेस स्पेसियर सार्वजनिक है क्योंकि इसे इंटरफ़ेस आईडीसोपायरी में परिभाषित किया गया है और इसे इस इंटरफ़ेस को लागू करने वाले वर्ग द्वारा लागू किया जाएगा, इसलिए यह सार्वजनिक होना चाहिए। दूसरी ओर, विधि अंतिम रूप () ने एक्सेस स्पेसियर को संरक्षित किया है ताकि यह कक्षा के बाहर किसी भी सदस्य के लिए सुलभ न हो।
  6. विधि निपटान () तेज है और वस्तु को तुरंत मुक्त करता है इसलिए, यह प्रदर्शन लागत को प्रभावित नहीं करता है। विधि को अंतिम रूप देना () धीमा है और वस्तु द्वारा रखे गए संसाधनों को तुरंत मुक्त नहीं करता है।

निष्कर्ष:

इसे अंतिम रूप देने की तुलना में तेज़ होने की विधि () पर विधि निपटान () का उपयोग करने का सुझाव दिया जाता है। इसके अलावा, इसे जरूरत पड़ने पर किसी भी समय बुलाया जा सकता है।