C# में using स्टेटमेंट: रिसोर्स मैनेजमेंट
using स्टेटमेंट IDisposable इंटरफेस इम्प्लीमेंट करने वाले ऑब्जेक्ट्स के जीवनचक्र को स्वचालित रूप से प्रबंधित करता है। यह सुनिश्चित करता है कि Dispose() मेथड कॉल हो, भले ही एक्सेप्शन 발생 हो।
सिंटैक्स
using (ResourceType resource = new ResourceType()) {
// resource का उपयोग करें
} // यहां resource.Dispose() अपने आप कॉल होता है
उदाहरण: कस्टम रिसोर्स क्लास के साथ
using System;
class SystemResource : IDisposable {
public void Dispose() {
Console.WriteLine("C - Resource released");
}
}
class Demo {
static void Main() {
Console.WriteLine("Start");
using (SystemResource res = new SystemResource()) {
Console.WriteLine("A - Inside using block");
} // Dispose() यहां ऑटोमेटिक कॉल होता है
Console.WriteLine("B - After using block");
}
}
आउटपुट
Start A - Inside using block C - Resource released B - After using block
महत्वपूर्ण बिंदु
usingब्लॉक के अंत मेंDispose()कॉल होता है, भले ही एक्सेप्शन थ्रो हो।- यह
try-finallyब्लॉक के बराबर है:Resource res = new Resource(); try { // उपयोग } finally { if (res != null) res.Dispose(); } - एकाधिक रिसोर्सेस के लिए (C# 8+):
using var r1 = new R1(); using var r2 = new R2();(ब्रेसेस के बिना)। - डेटाबेस कनेक्शन (
SqlConnection), फाइल स्ट्रीम्स, नेटवर्क स्ट्रीम्स आदि के लिए अनिवार्य।
using डायरेक्टिव vs using स्टेटमेंट
- using डायरेक्टिव: नेमस्पेस इम्पोर्ट करने के लिए (
using System;)। - using स्टेटमेंट: रिसोर्स डिस्पोजल के लिए (ऊपर दिखाया गया)।