যেমন ক্লাস 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")) { }