فہرست کا خانہ:
تعریف - حتمی شکل دینے کا کیا مطلب ہے؟
فائنلائز ایک ایسا آبجیکٹ طریقہ ہے جس میں کوڑا کرکٹ کو جمع کرنے (جی سی) سے پہلے غیر منظم وسائل کو آزاد کرنے اور صفائی کے کام انجام دینے کے لئے درکار کوڈ ہوتا ہے۔
حتمی شکل کا استعمال ایسے وسائل کو صاف کرنے کے لئے کیا جاتا ہے جس کا انتظام NET کے ذریعہ نہیں کیا جاتا ہے۔ اگرچہ .NET فریم ورک صاف طور پر میموری مینجمنٹ کے کاموں کو انجام دے کر منظم وسائل کی رہائی کے لئے ڈیزائن کیا گیا ہے ، غیر منظم درخواست کے وسائل - جیسے فائل ہینڈلز اور ڈیٹا بیس کنیکشنز کو واضح طور پر جاری کرنا چاہئے۔
ٹیکوپیڈیا نے فائنلائز کی وضاحت کی
اگرچہ حتمی شکل دینے کے لئے ڈیزائن کیا گیا ہے جی سی کی طرف سے واضح طور پر کہا جاتا ہے ، تصرف کے طریقہ کار کو واضح طور پر صارف کوڈ کے ذریعہ مفت وسائل کے لئے بلایا جاسکتا ہے۔
حتمی شکل دینا روایتی C ++ تباہ کنوں کی طرح ہے ، کیونکہ ہر چیز آبجیکٹ کے وسائل کو آزاد کرنے کے لئے ذمہ دار ہے۔ جب کسی شے کا دائرہ کار سے ہٹ جاتا ہے تو سی ++ ڈسٹرسٹ کو فوری طور پر پھانسی دے دی جاتی ہے ، جبکہ جی سی میں آبجیکٹ کلین اپ کے دوران حتمی شکل طلب کی جاتی ہے۔ C # میں ، حتمی شکل دینے کو براہ راست نہیں کہا جاسکتا ہے اور نہ ہی اسے ختم کیا جاسکتا ہے۔ اگر کسی ڈسٹریکٹر کا اعلان کیا جاتا ہے تو ، جب پروگرام مرتب ہوتا ہے تو اسے حتمی شکل میں تبدیل کردیا جاتا ہے۔
حتمی شکل دینے کے دوران ، میموری کو مختص کرنے یا ورچوئل طریقوں کو کال کرنے سے گریز کرنا چاہئے۔ حتمی شکل دینے کی گنجائش کو محفوظ کیا جانا چاہئے تاکہ یہ صرف ایک ہی طبقے یا اس سے اخذ کلاس کے اندر ہی حاصل ہو۔ حتمی شکل دینے میں کسی بھی دوسری چیز کا حوالہ نہیں دینا چاہئے۔ سی # میں ، اس کی بیس کلاس کے علاوہ کسی اور چیز پر براہ راست فائنل کرنا کال کرنا ایک غلط عمل ہے۔ حتمی کوڈ کو کالنگ تھریڈ کو مسدود کرنے کے قابل کسی بھی کال کے بغیر کم سے کم ہونا چاہئے۔ چونکہ حتمی شکل کو ایک سرشار دھاگے کے ذریعہ کہا جاتا ہے ، لہذا اس کے کوڈ میں تھریڈ لوکل اسٹوریج یا کسی ایسی تکنیک کا استعمال نہیں کیا جانا چاہئے جس میں تھریڈ وابستگی کی ضرورت ہو۔
عدم استحکام کی کمی اور جی سی کی کارکردگی پر اثرات کی وجہ سے ، غیر منظم میموری یا وسائل کو جاری کرنے کے فال بیک میکانزم کی حیثیت سے حتمی شکل کا استعمال ضروری ہے۔




