سلام دوستان
من راجع به این اشاره گر که مربوط به کلاسها هم هست مطلب زیاد خوندم اما هنوز درک کاملا درستی ندارم ازش!!
ممکنه که به صورت واضح توضیح بدین که دقیقا چی هست و چه کاربردی داره؟!
سلام دوستان
من راجع به این اشاره گر که مربوط به کلاسها هم هست مطلب زیاد خوندم اما هنوز درک کاملا درستی ندارم ازش!!
ممکنه که به صورت واضح توضیح بدین که دقیقا چی هست و چه کاربردی داره؟!
1سمپل ساده :
تویه کد 2 تا ایکس هست. اونی که اشاره گر this پشتش هست، میشه اون ایکسی که برا کلاس هست.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by p d; 04-01-2013 at 22:55.
ویرایش: جناب pd در حین نوشتن این پست جواب داده اند و بنده پس از ارسال این پست جواب ایشونو دیدم.
سلام.سلام دوستان
من راجع به این اشاره گر که مربوط به کلاسها هم هست مطلب زیاد خوندم اما هنوز درک کاملا درستی ندارم ازش!!
ممکنه که به صورت واضح توضیح بدین که دقیقا چی هست و چه کاربردی داره؟!
بطور واضح و مختصر واژه this یک اشارگر به شی جاری میباشد.
فرض کنید شما کلاس هایی به شکل زیر دارید:
تابع :کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
وظیفه دارد تا شی جاری از کلاس رو در continer ذخیره کند. دقیقا در چنین نقطه ایی اشارگر this به کار میاید!کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تابع AddToContiner توسط اشارگر this میفهمد که دقیقا از کدام شی MyClass فراخانی شده است. در حقیقت اشارگر this در تابع AddToContiner برابر است با شی MyClass ـی که از آن فراخانی شده.
تغریف تابع AddToContiner به شکل زیر میباشد:
----------------کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
به این مثال توجه کنید:
دقیقا زمانی که اجرا به تابع AddToContiner میرسد مقدار ها به شکل زیر میباشند:کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
------کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نکته دیگری که وجود دارد این است که اشارگر this در توابع static کاربرد ندارند. یعنی توابع static در اصل مستقل از شی فراخانی میشوند و فقط یک نمونه از توابع static بین تمام اشیاء یک کلاس به اشتراک گذاشته میشود. پس بنابر این استفاده از this در توابع static کاربرد ندارد و احتمالان با خطا مواجه میشود.
Last edited by god of war 2; 04-01-2013 at 23:22.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)