خوش اومدید دوباره.
توی این ویدیو می‌خوام چیزی خیلی مهم رو بهتون نشون بدم.
و اون چیزی نیست جز محدودهٔ یک متغیر (Scope).
پس محدودهٔ یک متغیر بستگی داره به این‌که اون متغیر کجا ساخته شده باشه.
بیاید یه نگاه به کدمون بندازیم، خب؟
اینجا ما یه متغیر int age داریم که داخل این if تعریف شده.
این یعنی این age فقط داخل همین if در دسترسه و بیرونش وجود نداره.
یعنی اگه بخوام مثلاً اینجا به age دسترسی داشته باشم.
مثلاً بنویسم age = …
می‌بینید حتی نمی‌ذاره مقدار بدم به age.
خودکار بهم خطا می‌ده.
پس این متغیر age خارج از محدودهٔ خودش وجود نداره. محدوده‌ش.
هم بین این آکولادهاست
از اینجا شروع می‌شه
و اینجا تموم می‌شه.
به همین دلیل فقط اینجا می‌تونیم ازش استفاده کنیم.
حالا چطوری مطمئن بشم که سن واردشده توسط کاربر بعداً هم قابل استفاده باشه؟
برای مثال، اینجا، کاری که می‌توانم انجام دهم این است که می‌توانم متغیری ایجاد کنم که خارج از این
باشد if دستور
age = 0 بذارم.
int age و اینجا به‌جای age فقط می‌نویسم .
یعنی اینجا فقط مقداردهی می‌کنم.
نه این‌که یه متغیر جدید بسازم.
متغیر اصلی بالاتر تعریف شده.
خب.
وقتی متغیر بیرون از if تعریف بشه، محدوده‌ش می‌شه کل فایل program.cs ما.
یعنی همه جا.
اینجا هم می‌تونم ازش استفاده کنم.
مثلاً دوباره بگم age = 0.
یعنی مقدار سن وارد شده توسط کاربر می‌تونه بعداً ریست بشه.
خب.
اوکی.
این موضوع برای رشتهٔ address هم صادقه.
مثلاً متغیر string address داخل if تعریف شده.
پس فقط همون‌جا در دسترسه.
یعنی این پایین می‌تونم بهش دسترسی داشته باشم.
if اما فقط توی همون .
بهش می‌گیم متغیر محلی (local).
بیرونش وجود نداره.
پس اگه بخوام توی بخش else از address استفاده کنم، نمی‌تونم.
چون اینجا اصلاً وجود نداره.
if بیرون از هم همین‌طوره. اصلاً شناخته‌شده نیست.
پس باید از قبل تعریفش کنم.
نمی‌توانم از آدرس استفاده کنم.
بنابراین، اگر بخواهم از آدرس خارج از دستور if استفاده کنم، باید آن را تنظیم کنم.
و بهترین راه این است که آن را اینجا تنظیم کنم.
بنابراین، می‌توانم آدرس را تنظیم کنم و مثلاً آن را به صورت یک رشته خالی قرار دهم.
و بعد اینجا باید این دستور رشته را حذف کنم، چون اینجا جاییه که من یک متغیر از نوع رشته به نام آدرس ایجاد می‌کنم.
اگر این رو حذف کنم، به متغیر آدرس موجود یک مقدار اختصاص می‌دم.
بسیار خوب.
خب.
این چیزیه که می‌خواستم بهتون نشون بدم.
(Scope) محدوده موضوع خیلی حساسیه که اگه بهش درست توجه نکنید، می‌تونه باعث خطاها و مشکلات بشه.
ولی حالا دیدید که متغیرها چطور کار می‌کنن، به همین دلیل خیلی وقت‌ها متغیرها رو فقط در بالای فایل تعریف می‌کنن.
چون اون موقع می‌تونن در کل فایل استفاده بشن.
یعنی کل فایل program.cs.
با این حال، اگه بدونید متغیری که تعریف می‌کنید فقط توی یه محدوده خیلی کوچک استفاده می‌شه،
توی این محدوده خیلی محدود، نیازی نیست اون رو به صورت سراسری یا
خارج از دستور if تعریف کنید، مثلاً در مورد آدرس.
برگردیم به تعریف آدرس اینجا به این شکل، این کار منطقی به نظر می‌رسه چون
آدرس فقط در این مورد خاص درخواست می‌شه.
پس اگه برنامه اجرا بشه و اصلاً به اون نقطه نرسه، کامپیوتر یا واحد پردازشمون
حتی لازم نیست به تنظیم آدرس فکر کنه چون اصلاً جایی وجود نداره.
ولی اگه اینجا تنظیمش کنیم و کد به اون نقطه نرسه چون مثلاً H هیچ‌وقت بالای 18 نیست،
این بخش هیچ‌وقت اجرا نمی‌شه و ما چند بیت صرفه‌جویی می‌کنیم.
خب، خیلی چیز عجیبی نیست، ولی تو نرم‌افزارهای بزرگ این می‌تونه تفاوت ایجاد کنه.
خب، این برای این ویدیو کافی بود.
تا ویدیوی بعدی.