تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 4 از 4

نام تاپيک: چطور یک شی از کلاس رو از داخل خودش کلاس Destruct کنم ؟

  1. #1
    در آغاز فعالیت
    تاريخ عضويت
    Jun 2007
    پست ها
    7

    پيش فرض چطور یک شی از کلاس رو از داخل خودش کلاس Destruct کنم ؟

    سلام به دوستان
    من اولین بارمه که اینجا پست میزارم
    حسابی گیر کردم امیدوارم کسی به داد من برسه

    من یه While بی نهایت دارم که در شرایطی برای من یک شی از کلاسی که تعریف کردم میسازه.
    اول میخوام بدونم که این شی ها میتونی هر کدوم واسه خودشون یک اسم داشته باشن که بتونم راحت شناسایشون کنم؟
    دوم این شی هایی که ایجاد میشن رو در شرایط خاصی مثلا یک try اتفاق میوفته چون همه کلاسهام به یک اسم هستند از داخل همین کلاس Destruct کنم؟

    مثال:

    public class obj
    {
    public void cl()
    {
    try
    {

    }
    catch(Exeption)
    {
    // classam ro mikham inja Destruct konam

    }
    }
    }

    میخوام وقتی که درtry برنام خطایی رخ داد در catch کل این شی که از این کلاس هست رو از حافظه حذف کنه؟
    این الان خیلی برام مهمه لطفا کمک کنیین ممنون .

    Last edited by kavy666; 15-06-2011 at 19:32.

  2. #2
    پروفشنال anvar.net's Avatar
    تاريخ عضويت
    Apr 2007
    محل سكونت
    IRAN
    پست ها
    648

    پيش فرض

    در vb.net برای اینکار از متد Dispose شی مورد نظر استفاده می کنیم (اصطلاحا به دورریختن معروفه) و بعد هم مقدار Nothing بهش می دیم و از حافظه پاکش می کنیم
    Dim obj as classX
    **********
    obj.dispose()
    obj=nothing

    اما اینکه Dispose از کجا اومده, این روال یا متد رو باید در داخل کلاست تعریف کنی و مشخص کنی که با فراخوانیش چه اتفاقی باید بیفته. واسه اینکار در ابتدا, کلاس مورد نظر شما باید اینترفیس Idisponsible رو پیاد سازی کنه لذا از دستور implement استفاده می کنند.
    Implement Idisponsible

    موقعی که دستور رو وارد می کنیم بصورت خودکار روال Dispose به کلاس اضافه میشه. حالا اگه هر شی تو کلاس تعریف کنی می تونی تو روال Dispose اونو پاکسازی کنی
    obj=Nothing
    واسه نام های متفاوت هم : میشه چندین شی با نام های مختلف اعلان کرد که فقط در اسم با هم متفاوت باشن

    احتمالا کلمات کلیدی در وی بی و C# با هم فرق دارند ولی کلیات کار همین بود. اگه متوه نشدی بگو یه کد کاملتر بذارم

  3. #3
    در آغاز فعالیت
    تاريخ عضويت
    Jun 2007
    پست ها
    7

    پيش فرض

    ممنون [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] عزیز
    من الا مشکلم اینه که اولین شی ی که از کلاسم میسازم Dispose نمیشه
    ولی بقیه شی هایی که از همون کلاس میسازم Dispose میشن !!!؟
    یعنی همون کلاس رو در اولین Dispose از بین نمیره ولی Dispose های بعدی همشون کار میکنن !!!؟

  4. #4
    پروفشنال anvar.net's Avatar
    تاريخ عضويت
    Apr 2007
    محل سكونت
    IRAN
    پست ها
    648

    پيش فرض

    شما در داخل بلوک Try catch می خواهید شی مورد نظر خودتون رو Dispose کنید

    در حالت طبیعی کد شما زمانی بصورت صحیح کار می کنه که خطائی در بلوک مورد نظر پیش بیاد (در این صورت شی مورد نظر Dispose میشه)

    از کجا معلوم که این بلوک به خطایی برخورد کنه ؟؟؟

    اگه مطمئنی که پس از اتمام این بلوک نیازی به وجود شی مورد نظر نداری می تونی از Finally استفاده کنی که حتما پس از بلوک فوق اجرا خواهد شد و حتما شی مورد نظر را Dispose خواهد کرد
    try

    catch

    finally

    .......................... Dispose

    end try

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •