آموزش سی شارپ مقدماتی (بخش ششم – آشنایی با متغیرها):
با عرض سلام و احترام.
پیشاپیش از شما دوست عزیز و گرامی، بابت وقتی که برای مطالعه ی این مطلب خواهید گذاشت، سپاسگزارم.
تقاضا دارم، در صورت مشاهده ی اشتباه متنی یا محتوایی، به اینجانب اطلاع دهید تا (ضمن کمک به یادگیری بنده) در اسرع وقت برای اصلاح متن اقدام نمایم.
شماره ی تماس:
09215149218
نشانی پست الکترونیکی:
[email protected]
آدرس کدها:
https://github.com/Learning-CSharp-Fundamental
آدرس سایت ها:
https://www.Reza-Qadimi.ir – https://wwww.WannaDate.ir
متغیر:
متغیر، فضایی از حافظه می باشد، که از آن برای نگه داشتن یک مقدار و بعد هم به کار گیری آن مقدار، استفاده می نماییم.
نکته: هر متغیر (یا اصطلاحا هر خانه ای از حافظه)، می تواند جنس خاص خودش را داشته باشد.
ما چندین نوع متغیر داریم:
- کاراکتر یا Char
- بول یا Boolean
- رشته ای یا String
- عدد صحیح یا Integer
- عدد اعشاری یا Floating Point
- برای اعداد صحیح (به ترتیب حجمی که می توانیم در آن ها ذخیره کنیم):
sbyte, byte, short, ushort, int, uint, long, ulong
- برای اعداد اعشاری (به ترتیب حجمی که می توانیم در آن ها ذخیره کنیم):
float, double, decimal
در حافظه، دو ناحیه داریم:
- Stack
- Heap
یک سری از متغیرها در Stack قرار می گیرند (اصطلاحا Allocate می شوند)، و یک سری از متغیرها در Heap.
بر اساس یک تعریف، متغیرها دو دسته می باشند (Local Variable و Field):
Local Variable:
دسته ی اول، متغیرهایی هستند که در داخل توابع تعریف می شوند (مانند تابع Main که در مقالات قبل، با آن آشنا شدیم)، و اصطلاحا به آنها متغیرهای محلی یا Local Variable می گوییم.
نکته ۱: همه ی Local Variable ها، در داخل Stack قرار می گیرند و مطلقا مقدار اولیه ندارند (حتی نباید بگوییم که مقدار null خواهند داشت).
نکته ۲: وقتی یک متغیر محلی (Local Variable) تعریف می کنیم، یک فضا در Stack ایجاد می شود، با همان اسم و از همان جنس.
مثال:
زمانی که ما یک متغیر به اسم x و از نوع داده ی int تعریف می کنیم، فضایی در Stack ایجاد می شود، به اسم x و از جنس int.
Field:
دسته ی دوم، متغیرهایی هستند که بیرون از Function یا تابع، و در درون کلاس (مانند کلاس Program) تعریف می شوند.
نکته: همه ی متغیرهایی که خارج از Function تعریف می شوند، در Heap قرار می گیرند و اتفاقا (بر عکس متغیرهایی که در Stack قرار می گیرند) مقدار اولیه ی مشخص دارند.
از یک دیدگاه دیگر، (این بار هم) متغیرها به دو دسته تقسیم می شوند (Value/Primitive Type و Reference Type):
Value Type or Primitive Type:
دسته ی اول، متغیرهایی هستند که خودشان و مقدارشان در یک جا قرار دارد (یا Stack، یا Heap).
مانند:
int, uint, float/single, char, bool
Reference Type:
دسته ی دیگر، نوع داده ی مرجع یا Reference Type می باشند.
این دسته از متغیرها، خودشان در یک جا (در Stack)، و مقدارشان در جای دیگر (در Heap) قرار می گیرد، و اصطلاحا به مقدارشان اشاره یا Point می کنند.
به عنوان مثال، string و همه ی آرایه ها (از هر نوع)، در دسته ی Reference Type ها قرار می گیرند.
نکته ۱: همه ی متغیرهای Reference Type، مقدار null دارند.
نکته ۲: string ها، در Reference Type ها استثنا هستند (خواهید دید که متغیرهای string ی، با وجود Reference Type بودن، بعضی از رفتارهایی که از Reference Type ها انتظار داریم را، ندارند!).
پی نوشت: در مقاله ی بعد، به بررسی نحوه ی کار کردن با متغیرها، می پردازیم.
معرفی:
رضا قدیمی هستم. برنامه نویس و دانش آموزِ حوزه ی وب، بسیار مشتاق در یادگیری مفاهیم و اطلاعات جدید در این حوزه.