در هر سیستم کامپیوتری حافظه های مختلفی وجود دارد که هر یک برای انجام کار خاصی تعبیه شده است. یک نوع از این حافظه ها که قادر است داده ها را در خود نگهداری کند و به سرعت قابل دسترس است، حافظه موقتی RAM می باشد. از اطلاعات درون حافظه RAM در هر لحظه می توان با اطلاع شد و در صورت لزوم محتویات آن را تغییر داد و یا مقادیر جدیدی را در آن ذخیره کرد. حلا با توجه به این مطالب، لازم است که در یک برنامه کامپیوتری، یک یا چند مکان (بایت) از حافظه RAM کامپیوتر برای نگهداری موقت داده ها یا نتایج حاصل از پردازش داده ها مورد استفاده برنامه قرار گیرد. در زبان های برنامه نویسی از جمله سی شارپ به این مکان ها، متغیر (Variable) گفته می شود. زیرا می توان محتوای آن ها را در طول اجرای برنامه بارها تغییر داد.
بنابراین متغیر، مکانی از حافظه RAM کامپیوتر است که برای نگهداری موقت داده ها یا اطلاعات استفاده می شود.
متغیر را مانند یک ظرف در نظر بگیرید. در آشپزخانه ظروف متعددی با شکل ظاهری، اندازه و جنس های مختلف وجود دارد که هر یک برای نگهداری یک نوع ماده غذایی استفاده می شود. در یک برنامه کامپیوتری نیز برای نگهداری داده های مختلف با توجه به نوع و اندازه، باید از متغیر مناسبی استفاده کنیم که بتواند داده ها را در خود نگهداری کند.
متغیرها در سی شارپ باید دارای یک نوع داده مشخص باشند. برای اینکه بدانیم چه نوع داده ای را به چه صورت درون یک متغیر ذخیره سازی کنیم باید با انواع داده ها در زبان برنامه نویسی سی شارپ آشنا باشیم. همانطور که در مقاله قبل گفته شد زبان C# یک زبان “Strongly Typed” می باشد، به این معنا که تمام عملیات ها روی متغیرها فقط و فقط با در نظر گرفتن نوع متغیرها انجام می شوند؛ به همین دلیل در یادگیری زبان سی شارپ آشنایی با انواع داده ها بسیار مهم می باشد.
خروجی برنامه بالا به شکل زیر است:
نوع داده یا نوع متغیر
نوع متغیر به طور کلی 3 ویژگی را مشخص می کند:
- گنجایش یا ظرفیت متغیر: مثلا نوع داده int چهار بایت است و 4 بایت از حافظه RAM را اشغال می کند.
- نوع اطلاعاتی که درون متغیر می توان ذخیره کرد: مثلا درون متغیری از نوع int فقط می توان اعداد صحیح و بدون اعشار را ذخیره کرد.
- چه عملیاتی را می توان بر روی آن انجام داد: مثلا روی انواع عددی می توان عملیات ریاضی را انجام داد.
نوع داده، حجم و نوع مقادیر متغیر را تعیین می کند، به همین دلیل استفاده از نوع داده صحیح برای متغیر مربوطه بسیار حائز اهمیت می باشد؛ برای اینکه از بروز خطا جلوگیری شود، برای اینکه در زمان و حافظه صرفه جویی شود و همچنین با اینکار می توانید کد خود را بهتر مدیریت کنید. متداول ترین انواع داده ها موارد زیر هستند:
byte این نوع داده عددی ۸ بیت (یک بایت) فضا را اشغال میکند و می تواند اعداد صحیح مثبت بین ۰ تا ۲۵۵ را در خود جای دهد.
Sbyte: این نوع داده عددی ۸ بیت فضا را اشغال میکند و می تواند اعداد صحیح مثبت و منفی بین ۱۲۸- تا ۱۲۷ را در خود جای دهد.
short: این نوع داده عددی ۱۶ بیت (معادل دو بایت) فضا را اشغال می کند و می تواند اعداد صحیح مثبت و منفی در بازهی ۳۲۷۶۸- تا ۳۲۷۶۷ را در خود ذخیره کند.
ushort: این نوع داده عددی ۱۶ بیت فضا را اشغال کرده و می تواند اعداد صحیح مثبت در بازهی ۰ تا ۶۵۵۳۵ را در خود ذخیره کند.
int: این نوع داده عددی ۳۲ بیت (4 بایت) فضا را اشغال کرده و اعداد صحیح مثبت و منفی در بازهی بین ۲۱۴۷۴۸۳۶۴۸- تا ۲۱۴۷۴۸۳۶۴۸+ را در خود ذخیره میکند.
مثال:
خروجی مثال بالا به شکل زیر است:
uint:این نوع داده عددی ۳۲ بیت فضا حافظه RAM را اشغال کرده و اعداد صحیح مثبت در بازهی بین ۰ تا ۴۲۹۴۹۶۷۲۹۵ را در خود ذخیره میکند.
long: این نوع داده عددی، ۶۴ بیت (معادل 8 بایت) فضا را اشغال کرده و اعداد صحیح مثبت و منفی در بازهی بین ۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۸- تا ۹۲۲۳۳۷۲۰۳۶۸۵۴۷۷۵۸۰۷+ را در خود ذخیره میکند. این نوع داده هنگامی به کار می رود که نوع داده int برای ذخیره مقدار موردنظر مناسب نباشد. به خاطر داشته باشید که باید مقدار را با یک حرف "L" به پایان برسانید.
خروجی برنامه بالا به شکل زیر است:
ulong: این نوع داده عددی ۶۴ بیت فضا را اشغال کرده و اعداد صحیح مثبت در بازه ۰ تا ۱۸۴۴۶۷۴۴۰۷۳۷۰۹۵۵۱۶۱۵ را در خود ذخیره میکند.
float: این نوع دادهی عددی ۳۲ بیت فضا را اشغال کرده و اعداد اعشاری مثبت و منفی را تا 7 رقم دقت اعشار در خود ذخیره می کند. به یاد داشته باشید که شما باید مقدار خود را با حرف "F" به پایان برسانید.
خروجی برنامه بالا به شکل زیر است:
double: این نوع دادهی عددی ۶۴ بیت فضا را اشغال کرده و اعداد اعشاری مثبت و منفی را تا 15 رقم دقت اعشار در خود ذخیره می کند.
نوع داده ای double می تواند اعداد اعشاری که حتی از نوع float بزرگتر هستند را ذخیره کنداستفاده از حرف "D" در انتهای مقدار ضروری نیست:
خروجی برنامه بالا به شکل زیر است:
Float یا double؟
میزان دقت یک عدد اعشاری برابر با میزان اعداد بعد اعشار است. دقت نوع float فقط 6 یا 7 عدد بوده در صورتی که متغیرهای double میزان دقت برابر با 15 رقم را دارند. بنابراین بهتر است که در محاسبات خود از double استفاده کنید.
decimal: دادهی عددی دسیمال ۱۲۸ بیت فضا را اشغال کرده و اعداد اعشاری مثبت و منفی بزرگ را در خود ذخیره می کند.
bool: این نوع دادهی باینری ۸ بیت فضا را اشغال کرده و دارای دو مقدار true (درست) و false (نادرست) است.
خروجی برنامه بالا به شکل زیر است:
مقادیر بولی بیشتر در زمان استفاده از شرط ها به کار می روند و نتیجه شرط را بر می گردانند.
char: این نوع داده رشته ای ۱۶ بیت فضا را اشغال کرده و تمام کاراکترهای یونیکد را درون خود ذخیره میکند. مقادیر از نوع char باید درون تک کوتیشن (‘ ’) قرار گیرند.
خروجی برنامه بالا به شکل زیر است:
string: این نوع داده رشته ای مجموعهای از کاراکترها شامل حروف الفبا، اعداد و کارکترهای خاص را در خود ذخیره میکند و متناسب با آن ها فضایی از Ram را اشغال خواهد کرد. مقادیر رشته ای باید درون جفت کوتیشن (“ “) قرار بگیرند: