Avatar ·

C# में IDisposable इंटरफ़ेस का सही उपयोग: मेमोरी लीक से कैसे बचें

सभी को नमस्ते! मैं एक शुरुआती C# डेवलपर हूँ और IDisposable इंटरफ़ेस को समझ नहीं पा रहा हूँ। मैंने दस्तावेज़ीकरण पढ़ा, लेकिन फिर भी सवाल बाकी हैं। यहाँ मेरे कोड का उदाहरण है। मैं फ़ाइलों और डेटाबेस के साथ काम कर रहा हूँ: ```csharp public class FileProcessor { private StreamReader _reader; private SqlConnection _connection; public void ProcessFile(string path) { _reader = new StreamReader(path); _connection = new SqlConnection("..."); // फ़ाइल पढ़ें और DB में सहेजें string line; while ((line = _reader.ReadLine()) != null) { // DB में सहेजें } // मैं _reader और _connection को बंद नहीं कर रहा - क्या GC ऐसा करेगा? } } ``` मुझे पता है कि StreamReader और SqlConnection IDisposable को implement करते हैं। लेकिन मेरे कुछ सवाल हैं: 1. क्या मुझे अपने class में IDisposable implement करने की ज़रूरत है, अगर मैं ऐसे resources का उपयोग कर रहा हूँ? 2. अगर मैं Dispose() को कॉल नहीं करता तो क्या होगा? क्या GC इसे इकट्ठा करता है?