دسترسی به یک متغیر خارج از محدوده تابع

kar1000

Member
سلام
ممنون میشم اگر راهنمایی بفرمائید چرا زمانیکه یک متغیر در داخل یک تابع که پارامتر ورودیش یک رویداد مانند event.complete یا mouseevent باشد نمیتوان خارج از محدوده این تابع به آن متغیر دسترسی داشت و در صورتیکه در خارج از تابع آنرا trace کنیم مقدرا null را برمیگرداند.
 

++Hadi++

Active Member
هر متغیری که در یک تابع و به طور کل بلوک گیومه ساخته می شه ،محلی تعیین می شه و بعد از اتمام کار تابع به شرطی که مثل شی صدا اکتیو نباشه ،از رم پاک می شه...این قانون تو همه زبونهای زنده تحت c دنیا هست...
 

++Hadi++

Active Member
اگر قرار هست اون متغیر تو یه بلوک مثل یه کلاس موندگار بشه ،اونو تو محدوده استارت کلاس یا تابع مد نظرتون تعریف کنید.یعنی بیرون از حلقه های for و while و خارج از گیومه های if و ...... اگه قراره تو کل سورس و سیستمتون ،به دست همگان مورد دسترسی قرار بگیره ،یکی از بهترین راههاش تو کل زبونهای تحت C اینه که یه کلاس بسازید و یه متغیر از نوع static توش تعریف کنید که از فضای نام عمومی یا public باشه و با استفاده از نام اصلی اون کلاس و نقطه و بعد اسم اون متغیر static به اون دست پیدا کنید و مقدارش رو بخونید یا تغییر بدین... آموزشش تو امضام (آموزش های اکشن 3 ) هست...برای توضیح اضافی باید بگم یه متغیر استاتیک تو یه کلاس در روت ترین و پایه ای ترین قسمت اون قرار می گیره و به وسیله اشیای ساخته شده از اون کلاس به ارث نمی رسه بلکه فقط با نام اون کلاس مورد دسترسی قرار می گیره و تمام اشیا به اون به صورت یکتا نگاه می کنن...در واقع یه متغیری شبیه به سراسری می شه که می تونه حکم ارتباطی بین اشیا بازی کنه...البته شما می تونین خارج از توابع دیگه و ... اونو تعریف کنین و نیازی به این نوع متغیر ندارید...
 

جدیدترین ارسال ها

بالا