হ্যাঁ একটি ফাঁস রয়েছে , আপনি কীভাবে লিক সংজ্ঞায়িত করেন এবং কতটা লটার আপনি বোঝাতে চান তার উপর নির্ভর করে ...
যদি ফাঁসের মাধ্যমে আপনি বোঝাতে চান "স্মৃতিটি বরাদ্দ থাকে, ব্যবহারের জন্য অনুপলব্ধ থাকে, যদিও আপনি এটি ব্যবহার করে এসেছেন" এবং পরবর্তীকালে আপনি নিষ্পত্তি কল করার পরে যে কোনও সময় বলতে চাইছেন, তবে হ্যাঁ সেখানে একটি ফাঁস হতে পারে, যদিও এটি স্থায়ী নয় (যেমন জন্য আপনার অ্যাপ্লিকেশন রানটাইমের জীবন)।
মেমোরিস্ট্রিমে ব্যবহৃত ম্যানেজড মেমোরি মুক্ত করার জন্য, আপনাকে এটিকে আপনার উল্লেখ উল্লেখ না করে এটিকে অবাস্তব করা দরকার , সুতরাং এটি এখনই আবর্জনা সংগ্রহের জন্য যোগ্য হয়ে ওঠে। আপনি যদি এটি করতে ব্যর্থ হন তবে আপনার রেফারেন্সটি সুযোগের বাইরে চলে যাওয়া অবধি আপনি এটি ব্যবহার করার সময় থেকেই একটি অস্থায়ী ফাঁস তৈরি করেন, কারণ এর মধ্যে স্মৃতি বরাদ্দের জন্য উপলব্ধ হবে না।
ইউজিং স্টেটমেন্টের সুবিধা (কেবল কলিং ডিসপোজে ওভার) হ'ল আপনি ব্যবহারের বিবৃতিতে আপনার রেফারেন্সটি ডিক্লেয়ার করতে পারেন। ব্যবহারের বিবৃতিটি শেষ হয়ে গেলে, কেবল নিষ্পত্তি কল করা হয় না, তবে আপনার রেফারেন্সটি সুযোগের বাইরে চলে যায়, কার্যকরভাবে রেফারেন্সটিকে বাতিল করে দেয় এবং অবিলম্বে আপনাকে "রেফারেন্স = নাল" কোডটি মনে রাখার কথা মনে না রেখে আপনার অবজেক্টটি আবর্জনা সংগ্রহের জন্য যোগ্য করে তোলে।
এখনই কোনও কিছুকে অবাস্তব করে তুলতে ব্যর্থ হওয়া ধ্রুপদী "স্থায়ী" মেমরি ফাঁস নয়, এটি অবশ্যই একইভাবে প্রভাব ফেলবে। উদাহরণস্বরূপ, আপনি যদি মেমরি স্ট্রিমের প্রতি আপনার রেফারেন্স রাখেন (কল করার পরেও কল্পনা) এবং আপনার পদ্ধতিতে আরও কিছুটা নিচে রাখেন আপনি আরও মেমরি বরাদ্দ করার চেষ্টা করেন ... আপনার এখনও-রেফারেন্সযুক্ত মেমরি স্ট্রিমের দ্বারা ব্যবহৃত স্মৃতি উপলব্ধ হবে না আপনার কাছে যতক্ষণ না আপনি রেফারেন্সটি বাতিল করেন বা এটি সুযোগের বাইরে চলে যায়, যদিও আপনি নিষ্পত্তি বলেছিলেন এবং এটি ব্যবহার করা হয়ে গেলেও।