जैसे वर्गों Stream
, StreamReader
, StreamWriter
आदि लागू IDisposable
इंटरफ़ेस। इसका मतलब है, हम Dispose()
इन वर्गों की वस्तुओं पर विधि कह सकते हैं। उन्होंने भी एक public
विधि को परिभाषित किया है Close()
। अब जो मुझे भ्रमित करता है, जैसा कि एक बार वस्तुओं के साथ करने के बाद मुझे क्या कॉल करना चाहिए? अगर मैं दोनों को बुलाऊँ तो क्या होगा?
मेरा वर्तमान कोड यह है:
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(responseStream))
{
using (StreamWriter writer = new StreamWriter(filename))
{
int chunkSize = 1024;
while (!reader.EndOfStream)
{
char[] buffer = new char[chunkSize];
int count = reader.Read(buffer, 0, chunkSize);
if (count != 0)
{
writer.Write(buffer, 0, count);
}
}
writer.Close();
}
reader.Close();
}
}
जैसा कि आप देखते हैं, मैंने रचनाएं लिखी हैं using()
, जो Dispose()
प्रत्येक ऑब्जेक्ट पर स्वचालित रूप से कॉल विधि है। लेकिन मैं Close()
तरीकों को भी बुलाता हूं । क्या यह सही है?
कृपया स्ट्रीम ऑब्जेक्ट का उपयोग करते समय मुझे सर्वोत्तम प्रथाओं का सुझाव दें। :-)
MSDN उदाहरण using()
निर्माण और कॉल Close()
विधि का उपयोग नहीं करता है :
अच्छी है?
using (MemoryStream ms1 = new MemoryStream(), ms2 = new MemoryStream()) { }
:। मेरा मतलब इस तरह से है जहाँ आप इस प्रकार को फिर से परिभाषित कर सकते हैं:using (MemoryStream ms = new MemoryStream()) using (FileStream fs = File.OpenRead("c:\\file.txt")) { }