PDA

View Full Version : گفتگو: دستور finally به چه دردی می خوره !؟ چرا تو س شارپ هست ؟!



drsina
دوشنبه 17 تیر 1392, 10:36 صبح
دوستان نمی دونم دقیقان دستور Finally به چه دردی می خوره !؟
به نظر من کاربردی اصلا نداره !
چون وقتی به دستور Catch در try می رسیم خود کار یه عمل مشابهی انجام میده و در این صورت finally به هیچ دردی نمی خوری !!!!!!!

موافقید ؟!؟

danialafshari
دوشنبه 17 تیر 1392, 11:04 صبح
http://msdn.microsoft.com/en-us/library/vstudio/zwc8s4fz.aspx
http://msdn.microsoft.com/en-us/library/zwc8s4fz(v=VS.80).aspx

Tiam121
دوشنبه 17 تیر 1392, 11:56 صبح
دستورات بلوک catch فقط زمانی اجرا میشن که خطا رخ بده در حالی که دستورات بلوک finally به هر حال اجرا میشن چه خطایی رخ بده و چه خطا رخ نده

majidrezaei2007
دوشنبه 17 تیر 1392, 14:08 عصر
این چه حرفیه که به هیچ دردی نمی خوره ؟؟
یعنی من و شما بهتر از طراح سی شارپ می فهمیم که میگیم به درد نمی خوره ؟؟ هر چیزی استفاده خودش رو داره دوست عزیز
دستور finally اجرای کدهایی که توش مینویسین رو گارانتی و تضمین می کنه . یعنی تحت هر شرایطی اجرا میشه ، چه خطار خ بده یا نده اون بلاک اجرا میشه

drsina
دوشنبه 17 تیر 1392, 20:32 عصر
این چه حرفیه که به هیچ دردی نمی خوره ؟؟
یعنی من و شما بهتر از طراح سی شارپ می فهمیم که میگیم به درد نمی خوره ؟؟ هر چیزی استفاده خودش رو داره دوست عزیز
دستور finally اجرای کدهایی که توش مینویسین رو گارانتی و تضمین می کنه . یعنی تحت هر شرایطی اجرا میشه ، چه خطار خ بده یا نده اون بلاک اجرا میشه


میدونم چه کار می کنه ولی اگه نباشه و دستورو تو ادامه کد نوشته باشیم هم همین کار finally رو میکنه !

امتحانش کنید ! دستور رو یه بار تو finally و یه بار بدون اون اجرا کنید ! هیچ اتفاق اضافه ای رخ نمیده .

یعنی یه کد اضافه است و کاربردی نداره ...

ضمنان اینو به مایکروسافت هم فیدبک دادم!

erfan_urchin
دوشنبه 17 تیر 1392, 22:41 عصر
ضمنان اینو به مایکروسافت هم فیدبک دادم!
جاااااااااااااااااااااااا اااااااااااان :متعجب:
یعنی مایکروسافت کمتر از ما ها میفهمه؟؟؟؟!!!!!!!!!!!

esafb52
دوشنبه 17 تیر 1392, 23:30 عصر
بفرما
:
http://stackoverflow.com/questions/547791/why-use-finally-in-c#

gholami146
دوشنبه 17 تیر 1392, 23:50 عصر
شما ممکنه در داخل بلاک برنامتون از دستوراتی استفاده کنید که در اون کلاسی رو تعریف یا ایجاد کنید یا از یک متغیر استفاده کنید اگر شما از دستورات دیگه ای هم در این بلاک استفاده کنید که کار اونها همانند ترد ها باشه مطمئنا در اتمام کار بلاک هنوز اون شیئ یا متغییر در حافظه موجود هست پس میتونید با استفاده از این دستور ولو اینکه از اون بلاک خارج شده باشید بطور اتومات عملیات خاتمه یا مثلا فری کردن (آزاد سازی متغیر و بازگردانی اون به حافظه و یا ...) رو انجام بدید