এই আর্টিকেলে আমরা C#-এ dispose() এবং finalize() মেথড দুটির পার্থক্য নিয়ে আলোচনা করব।
Dispose
এই মেথডটি
IDisposableইন্টারফেসে সংজ্ঞায়িত।ব্যবহারকারীকে এটি সচেতনভাবে আহ্বান করতে হয়।
যখন এটি ডাকা হয়, এটি অনম্যানেজড রিসোর্সها (unmanaged resources) মুক্ত করতে সাহায্য করে।
যখন
close()মেথড থাকে তখন এটি ইমপ্লিমেন্ট করা যায়।এটি পাবলিক মেথড হিসেবে ঘোষিত হয়।
এটি দ্রুত কাজ করে এবং অবজেক্টকে তাৎক্ষণিকভাবে ডিসপোজ করে।
তাত্ক্ষণিকভাবে কাজ করার কারণে এটি পারফরম্যান্সে কোনো নেতিবাচক প্রভাব ফেলে না।
Finalize
এটি
Objectক্লাসে সংজ্ঞায়িত একটি মেথড (জাভারjava.lang.Objectনয়, C#-এSystem.Object)।গারবেজ কলেক্টর (Garbage Collector) এটি স্বয়ংক্রিয়ভাবে আহ্বান করে।
অবজেক্ট ধ্বংস হওয়ার ঠিক আগে এটি অনম্যানেজড রিসোর্সها মুক্ত করতে সাহায্য করে।
অনম্যানেজড রিসোর্স ম্যানেজ করার জন্য এটি ইমপ্লিমেন্ট করা হয়।
এটি প্রাইভেট (private) হিসেবে ঘোষিত হয়।
dispose()মেথডের তুলনায় এটি ধীর।ধীর গতির কারণে এটি ওয়েবসাইট বা অ্যাপ্লিকেশনের পারফরম্যান্সে প্রভাব ফেলতে পারে।
সারসংক্ষেপ: Dispose() হলো ডিটারминиস্টিক ক্লিন-আপের জন্য, যেখানে Finalize() হলো নন-ডিটারминиস্টিক ফেইল-সেফ। সর্বোত্তম অনুশীলন হলো IDisposable ইমপ্লিমেন্ট করা এবং using ব্লক ব্যবহার করা।