آموزش سی شارپ C# قسمت دوم

1396/9/12 محمد احمدی 11604

csharp-variables-data-types

سلام و وقت بخیر خدمت دوستان عزیز. در جلسه قبل از آموزش سی شارپ با مقدمات و معرفی سی شارپ در خدمت شما بودیم. امیدوارم تمرین کرده باشید و با محیط ویژوال استادیو آشنا شده باشید و آماده شروع قسمت دوم آموزش سی شارپ باشید.

جلسه قبل یک مقدار در مورد خود نرم افزار ویژوال استادیو صحبت کردیم . گفتیم که یک چیزی به نام پروژه وجود دارد ( که با آن آشنایی دارید ) و یک چیزی هم به نام Solution وجود دارد که بالاتر از پروژه است و تفاوت اصلی آن با پروژه این است که Solution میتواند چندین پروژه داشته باشد ( به زبان های مختلف . مثلا 2 پروژه متفاوت به زبان سی شارپ و 2 پروژه مختلف دیگر به زبان ویژوال بیسیک ! ) .

یکی از مزیت های Solution این است که براحتی می تواند پروژه های مختلفی که در یک Solution وجود دارد را به هم متصل کرد و از امکانات یک پروژه در یک پروژه دیگر استفاده کنید !

در هر پروژه ( یا حتی Solution ) فایل هایی وجود دارد که باعث تکمیل پروژه میشود !

وقتی یک پروژه سی شارپ میسازید , بصورت خودکار یک سری فایل همراه با پروژه ساخته میشود و در پوشه Solution و Project قرار داده میشود !

مثلا اگه یک پروژه سی شارپ از نوع ویندوز فرم بسازید , یک فایل Program.cs و یک فایل Form1.cs و یک فایل App.Config و چند فایل دیگر هم ساخته میشود که هر کدام از این فایل ها در جایی مورد نیاز میشود و هیچ کدام اضافه نیست ( پس سعی نکنید یکی رو حذف کنید )

حالا که میدونیم پروژه و سولوشن و ... چی هست , نوبت اینه که با بخش Solution Explorer آشنا بشیم .

 

Where-is-Solution-Explorer

شکل 1 – محل قرار گیری Solution Explorer در ویژوال استادیو

در واقع Solution Explorer یک پنل برای مدیریت Solution ( یا سولوشن ها ) و تمامی فایل هایی که در آن است ( از جمله پروژه ها و فایل های درون پروژه ) می باشد.

مکان قرار گیری پنل Solution Explorer در ویژوال استادیو در وسط سمت راست صفحه هست . ( البته بطور معمول و اگه تغییر نداده باشید )

Where is Solution Explorer

شکل 1 – محل قرار گیری Solution Explorer در ویژوال استادیو

اگر سSolution Explorer در محیط ویژوال استادیو نبود ( یا به هر دلیلی یافت نشد) , میتوانید از منوی View -> Solution Explorer پنل رو به محیط ویژوال استادیو اضافه کنید .

فعلا به همین قدر توضیح در مورد Solution Explorer اکتفا میکنیم !

خب یک پنل مهم دیگر هم داریم بنام Toolbox هست ( بمعنی جعبه ابزار) . در جعبه ابزار , چند مورد از مهم ترین ابزار های مورد نیاز برنامه نویسی وجود دارد که هر کدام را که بخواهیم میتوانیم به پروژه خود اضافه کنیم.

چند مورد از مهمترین ابزار ها (TextBox , Button , Label , ListBox , CheckBox , RadioButton , ….. ) هستند که معمولا کاربرد زیادی دارند ( به خاطر بیارید که در جلسه قبل یک Button اضافه کردیم )

یک سری پنل دیگر هم است که جلسات بعدی وقتی نیاز شد با آنها آشنا میشویم.

گفتیم که در سی شارپ یک سری ابزار داریم. حالا باید بدانیم که هر کدام از این ابزارها یک سری ویژگی هایی را دارند که به چند دسته تقسیم میشوند.

این ویژگی ها عبارتند از:

  1. Property یا خصوصیت
  2. Event یا رویداد
  3. Method یا متد ( قبلا با نام تابع شناخته میشد )

در واقع هر کدام از این ابزارها یک کلاس بشمار می آیند. ( بعدا توضیح بیشتری میدم )

خب حالا به مواردی که در کد نویسی با آنها سر و کار داریم می پردازیم!

مقدمات پایه مورد نیاز :

  1. متغیر ها
  2. محاسبات و عملگرهای محاسباتی
  3. ساختار ها ( عمده ترین و مهم ترین ساختارها , ساختارهای شرط و حلقه ها هستن )
  4. آرایه ها
  5. متد ها و توابع

متغیرها در سی شارپ

اولین بحث ما در مورد متغیرها ست.  ( جلسه امشب هم به متغیرها اختصاص دارد )

اکثرا متغیر رو اینگونه تعریف میکنند : " متغیر بخشی از حافظه رم میباشد که وظیفه ذخیره سازی اطلاعات ( اعم از اعداد , رشته ها , زمان و تاریخ و .... ) را دارد.

هر متغیر سه مشخصه اصلی دارد

  • نوع متغیر
  • نام متغیر
  • مقدار متغیر

تعریف بالا تقریبا شفاف و واضح هست , اما اگه متوجه نشدید جای نگرانی نیست.

یک مثال میزنم : فرض کنید شما قصد دارید یک مقدار غذا میل کنید. خب این غذا را میتوانید مستقیما از داخل ظرف اصلی ( مثلا دیگ یا قابلمه ) میل کنید. ولی یک مسئله ای هست که این عمل همیشه ایده ال نیست. مثلا آن غذا فقط مال شما نیست و با یک عده دیگر نیز مشترک است.

راه حل چیست ؟؟؟ باید یک سری ظرف تهیه کنیم ( مثل بشقاب یا کاسه ) و غذا را داخل آن ظرف ها به افراد ارائه کنیم !!

در برنامه نویسی ( تقریبا در همه زبان ها ) چنین حالتی وجود دارد. ما میتوانیم بدون استفاده از ظرف ( در واقع همون متغیر ) استفاده خود را از آن ببریم. ولی یک در جاهایی باید یک ظرفی تهیه کنیم که بتوانیم یک مقدار را از کاربر بگیریم , یک سری اعمال روی آن انجام دهیم , و در نهایت نتیجه را به کاربر نشان دهیم !!

مثلا قصد داریم  دو عدد را از کاربر دریافت کنیم و حاصل جمع آنها را نمایش دهیم. خب اولین کار این است که 2 عدد را به شکلی ( به هر نحوی ) از کاربر گرفته و هر کدام را بصورت جداگانه در یک ظرف بریزیم. مرحله دوم کار این است که آن 2 عدد را با هم جمع کنیم و حاصل جمع را در یک ظرف ( یا همان متغیر ) سوم بریزیم و درنهایت آخرین مرحله این است که نتیجه را به کاربر نشان دهیم !!

در برنامه نویسی به زبان سی شارپ , برای اینکه بتوانیم از متغیر ( ظرف ) استفاده کنیم, اول باید آن را تعریف کنیم.

هر متغیر یک نوع دارد و هر کدام از انواع متغیرها کاربرد مختص به خود را دارند !

مثلا یک سری از انواع فقط برای اعداد هستند. یک سری برای رشته ها هستن ( مثلا نام و نام خانوادگی ) . و یک سری برای دریافت تاریخ و ساعت ( مثل روز دقیق تولد و یا ساعت پرداخت حقوق !! )

به چند مورد از انواع متغیرها یک اشاره ای میکنیم :

  1. نوع دادهbyte : در این نوع داده می توان از بازه 0 تا 255 را ذخیره کرد.
  2. نوع داده sbyte : در این نوع داده می توان از بازه 128- تا 127 را ذخیره کرد.
  3. نوع داد short : در این نوع داده می توان از بازه 32،768- تا 32،767 را ذخیره کرد.
  4. نوع داده ushort : در این نوع داده می توان از بازه 0 تا 65،535 را ذخیره کرد.
  5. نوع داده int : در این نوع داده می توان از بازه 2،147،483،648- تا 2،147،483،647 را ذخیره کرد.
  6. نوع داده uint : در این نوع داده می توان از بازه 0 تا 4،294،967،295 را ذخیره کرد.
  7. نوع داده long : در این نوع داده می توان از بازه 9،223،372،036،854،775،808- تا 9،223،372،036،854،775،807 را ذخیره کرد.
  8. نوع داده ulong : در این نوع داده می توان از بازه 0 تا 18،446،744،073،709،551،615 را ذخیره کرد.
  9. نوع داده float : در این نوع داده می توان از بازه 3.402823e38- تا 3.402823e38 را ذخیره کرد.
  10. نوع داده double : در این نوع داده می توان از بازه 1.79769313486232e308- تا 1.79769313486232e308 را ذخیره کرد.
  11. نوع داده decimal :  در این نوع داده می توان از بازه 79228162514264337593543950335- تا 79228162514264337593543950335 را ذخیره کرد.
  12. نوع داده string : در این نوع داده میتوان رشته ها را ذخیره کرد . برای نسبت دادن یک رشته یا متن بصورت دستی , باید متن مورد نظر را درون دو عدد دابل کوتیشن   (ِDouble Quotation) قرار داد . مثال : "Hello World"
  13. نوع داده char : در این نوع داده میتوان یک کاراکتر را قرار داد . همانند نوع داده ای string باید متن را درون تک کوتیشن (Single Quotation) قرار داد . مثال : ‘A’ . نکته مهم : در نوع داده ای char تنها یک کاراکتر میتوان ذخیره و نگهداری کرد !
  14. نوع داده bool : این نوع داده تنها دو مقدار true یا صحیح و false یا غلط را قبول می کند. بیشتر از نوع داده منطقی، جهت ذخیره نتیجه مقایسه ها و کنترل روند اجرای برنامه بر اساس شرط ها استفاده می کنند.
  15. نوع داده object : نوع داده شئ یا Object، نوع داده ایست که در آن هر نوع مقداری چه رشته ای، چه عددی و چه منطقی قابل ذخیره است .

همونطورکه میبینید تنوع زیادی در بین انواع داده ای متغیرها وجود دارد. ( که 15 مورد از آنها را عنوان کردیم ) و بسته به نیاز برنامه ازهر کدام ازانواع داده ها که بخواهیم استفاده می کنیم.

در بالا گفتیم که هر متغیر 3 بخش دارد ( 1- نوع متغیر , 2- نام متغیر , 3- مقدار متغیر ) . حالا چند مثال میزنیم که بیشتر و بهتر با آنها آشنا شویم .

مثال :

 

int a;
    a = 123;
int a2 = 321;

long b;
    b = 123;
int b2 = 321;

float c;
    c = 123;
float c2 = 321;

double d;
    d = 123;
double d2 = 321;

string text;
    text = "Hello World";
string text2 = "Hi Body :)";

char myChar;
    myChar = 'A';
char myChar2 = 'A';

bool Flag;
    Flag = false;
bool flag2 = true;

object x;
    x = "Hello . im object !! ";
object y = 123;
object z;
    z = 1394;

MessageBox.Show(z.ToString());
    z = "type cast !! :)";
MessageBox.Show(z.ToString());


 

خب همانطور که میبینید برای تعریف داده به شکل زیر عمل میکنیم :

DataTypeDataName ;
DataTypeDataName = Data;

بخش اول که نوع داده ای متغیر را مینویسیم , بخش دوم اسم متغیر و در بخش سوم مقدار متغیر مینویسیم ( اگه بخواهیم همان موقع به متغیر مقدار دهیم ، مقدار آن را می نویسیم ) .

همانطور که میبینید در خطوط آخر ( از مثال تعریف متغیر ) چند متغیر از نوع object تعریف کردیم و هر بار یک مقداری به آنها دادیم . مثلا به متغیر z بار اول مقدار 1394 و بار دوم مقدار رشته ای "type cast" را دادیم .

اگر کد بالا را به شکلی که در جلسه قبل توضیح دادم اجرا کنید , میبینید که بار اول مقدار 1394 را نمایش میدهد و بار دوم جمله "type cast !! :)" رو نشان می دهد !

یعنی سی شارپ نوع داده ای متغیری که از نوع object تعریف شده را بطور خودکار و بصورت هوشمند تغییر می دهد و از نوع داده ای مقدار درون متغیر قرار میدهد.

برای نام گذاری متغیر در سی شارپ , چند قانون کوچیک است که حتما باید از آنها پیروی کنید:

  1. نام متغیر تنها می تواند شامل حروف لاتین و اعداد و کاراکتر "_" ( آندرلاین Underline ) باشد.
  2. نام متغیر حتما باید با یکی از حروف لاتین ( چه کوچک و چه بزرگ ) و یا _ شروع شود.
  3. نام متغیر نباید تکراری باشد.
  4. نام متغیر نباید از کلمات کلیدی سی شارپ باشد.

چند نمونه انتخاب نام متغیر مجاز :

 Name , name , MyName , MyVar , var1 , var2 , _var3 , ___3var , _1 , _     و ......

چند نمونه نام متغیر غیرمجاز :

 3name , 123 , 2_ , سلام , int , for , if , -name1 , name.1 , .var         و .....

به عنوان تمرین, یک پروژه ایجاد کنید ( یا پروژه ای که جلسه قبل با هم ساختیم را باز کنید ) و چند متغیر از نوع های مختلف تعریف کنید و آنها را مقداردهی کنید.

اگر خواستید متغیرهایی که تعریف کردید را به کاربر نمایش دهید, از متد show در کلاس MessageBox ( قبلا مختصر توضیح دادم , بعدا کامل تر میگم ) استفاده کنید.

فقط یک نکته خیلی مهم, آن هم اینکه برای نمایش محتوای یک متغیر ( به جز متغیر از نوع string ) حتما باید بعد از اینکه اسم متغیر را نوشتید, از دستور ToString() استفاده کنید.

حتما هم نقطه قبل از ToString و پرانتز بعد از آن را قرار دهید . مانند مثال زیر:

long z = 2015;

MessageBox.Show(z.ToString());

 

با این دستور , مقداری که در یک متغیر از نوع های مختلف است را به یک رشته متن string تبدیل میکنیم و بعد به کاربر نمایش میدهیم !

فکر میکنم برای این جلسه کافی باشد. اگر با سی شارپ آشنایی ندارید, حتما سعی کنید درس قبلی و این جلسه را خوب تمرین کنید. و انواع متغیر ها رو بسازید. چون بعدا خیلی مهم است که بدانیم در کد نویسی کدام یک از انواع داده ای را نیاز داریم !