হ্যাঁ, Disposeডাকা হবে। এটি শীঘ্রই ফাঁসি পাতার হিসাবে পরিধি যেমন বলা হচ্ছে usingব্লক, মানে কি এটা ব্লক ছেড়ে নেমে আসে নির্বিশেষে, ব্লক, একটি কার্যকর শেষ হতে returnবিবৃতি, অথবা একটি ব্যতিক্রম।
@ নলডোরিন সঠিকভাবে উল্লেখ করেছেন যে কোডে একটি usingব্লক ব্যবহার করে try/ এ ব্লকটিতে ডাকা হওয়ার finallyসাথে সংকলিত হয় । উদাহরণস্বরূপ নিম্নলিখিত কোড:Disposefinally
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কল দ্বারা উত্পন্ন নতুন ব্যতিক্রমের পক্ষে গিলে যায় । এটি হতাশাজনক হতাশ হতে পারে। নাকি হতাশাজনকভাবে ক্ষিপ্ত? দুই এর মধ্যে এক. হয়তো উভয়.