যেমন ক্লাস 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()
পদ্ধতিগুলি কল । এটা কি ঠিক?
স্ট্রিম অবজেক্ট ব্যবহার করার সময় দয়া করে আমাকে সেরা অনুশীলনের পরামর্শ দিন। :-)
এমএসডিএন উদাহরণ using()
কনস্ট্রাক্টস এবং কল Close()
পদ্ধতি ব্যবহার করে না :
এটা কি ভালো?
using (MemoryStream ms1 = new MemoryStream(), ms2 = new MemoryStream()) { }
। আমার অর্থ এই যেখানে আপনি প্রকারটি নতুন করে সংজ্ঞায়িত করতে পারেন:using (MemoryStream ms = new MemoryStream()) using (FileStream fs = File.OpenRead("c:\\file.txt")) { }