হ্যাঁ, Dispose
ডাকা হবে। এটি শীঘ্রই ফাঁসি পাতার হিসাবে পরিধি যেমন বলা হচ্ছে using
ব্লক, মানে কি এটা ব্লক ছেড়ে নেমে আসে নির্বিশেষে, ব্লক, একটি কার্যকর শেষ হতে return
বিবৃতি, অথবা একটি ব্যতিক্রম।
@ নলডোরিন সঠিকভাবে উল্লেখ করেছেন যে কোডে একটি using
ব্লক ব্যবহার করে try
/ এ ব্লকটিতে ডাকা হওয়ার finally
সাথে সংকলিত হয় । উদাহরণস্বরূপ নিম্নলিখিত কোড:Dispose
finally
using(MemoryStream ms = new MemoryStream())
{
//code
return 0;
}
কার্যকরভাবে হয়ে:
MemoryStream ms = new MemoryStream();
try
{
// code
return 0;
}
finally
{
ms.Dispose();
}
সুতরাং, যেহেতু ব্লকটি finally
কার্যকর কার্যকর হওয়ার পরে try
নির্বাহের পথ নির্বিশেষে নির্বাহের Dispose
কাজটি নির্ধারণের গ্যারান্টিযুক্ত , যাই হোক না কেন ডেকে আনা গ্যারান্টিযুক্ত।
আরও তথ্যের জন্য, এই এমএসডিএন নিবন্ধটি দেখুন ।
সংযোজন: যুক্ত করার জন্য
কেবল একটি সামান্য সতর্কতা: কারণ Dispose
এটির গ্যারান্টিযুক্ত, এটি Dispose
বাস্তবায়নের সময় কখনই কোনও ব্যতিক্রম ছুঁড়ে না তা নিশ্চিত করা প্রায় সর্বদা একটি ভাল ধারণা IDisposable
। দুর্ভাগ্যবশত, কোর লাইব্রেরিতে কিছু শ্রেণীর যে কি করতে কিছু বিশেষ পরিস্থিতির মধ্যে নিক্ষেপ যখন Dispose
আমি তোমাদের দিকে তাকিয়ে আছি, WCF পরিষেবা রেফারেন্স / ক্লায়েন্ট প্রক্সি - বলা হয়! - এবং এটি যখন ঘটে তখন মূল ব্যতিক্রমটিকে কল করা খুব শক্ত হতে পারে যদি Dispose
কোনও ব্যতিক্রম স্ট্যাক আনইন্ডাইন্ডের সময় ডাকা হত, যেহেতু মূল ব্যতিক্রমটি Dispose
কল দ্বারা উত্পন্ন নতুন ব্যতিক্রমের পক্ষে গিলে যায় । এটি হতাশাজনক হতাশ হতে পারে। নাকি হতাশাজনকভাবে ক্ষিপ্ত? দুই এর মধ্যে এক. হয়তো উভয়.