{برنامه نویسی} آموزش ساده برنامه نویسی سی شارپ (قسمت چهارم)

آموزش سی شارپ

ما در این بخش ادامه مبحث قبلی، یعنی متغیر ها دنبال می کنیم و به تشریح نکات بیشتری می پردازیم.

 

انواع داده در سی شارپ: 

 

نوع داده

محدوده ذخیره کردن

byte

0. 255

sbyte

-128... 127

short

-32,768... 32,767

ushort

0. 65,535

int

-2,147,483,648... 2,147,483,647

uint

0. 4,294,967,295

long

-9,223,372,036,854,775,808... 9,223,372,036,854,775,807

ulong

0. 18,446,744,073,709,551,615

float

-3.402823e38... 3.402823e38

double

-1.79769313486232e308... 1.79769313486232e308

decimal

-79228162514264337593543950335... 79228162514264337593543950335

char

یک کاراکتر یونیکد.

string

یک رشته

bool

True یا False.

object

یک شی

 

Explicit Cast و implicit Cast چیست؟

اگر بخواهيم متغيری از يک جنس را در داخل متغيری از جنس ديگری قرار دهيم، سه حالت پيش می آيد (منظور از جنس نوع داده است).

  1. نمی توانيد اين عمل را انجام دهيد.
  2. می توانيد و با خيال راحت. Implicit Casting (ضمنی)
  3. می توانيد به شرط آنکه مسووليت آنرا بپذيريد. Explicit Casting (صريح)

منظور از نمی توانید این است که بعض از انواع داده ای را نمی شود در نوع دیگر ریخت مثلا داده ای از نوع string را که در آن متن ریخته می شود را نمی توان در یک مقدار عددی int ریخت.

منظور ازاین که باید مسئولیت آن را بپذیرد این است که مثلا اگر داده ای از نوع long را که مقدار زیادی عدد را در خود جای می دهد در نوع داده ای مثل byte بریزیم که میزان کمی داده را در خود جای می دهد، بخش عمده ای از داده ها از بین می رود.

دقیقا مثل این که بخواهیم آب یک پارچ را در یک لیوان بریزیم.

اگر آب پارچ کم باشد در لیوان جا می شود اما اگر زیاد باشد سر ریز می کند.

در مثال زیر چند عمل تبدیل را نشان می دهیم:

 

 static void Main(string[] args)
 {
//////////////////////////// 1
 int Value1;
 long Value2;
 double Value3; ///برای ذخیره اعداد اعشاری

////////////////////////////// 2

 Value1 = 10000;
 Value2 = Value1;
 Console.WriteLine(Value2);

////////////////////////////////////////// 3

 Value2 = 123456789;
 Value1 = (int)Value2;
 Console.WriteLine(Value1);

///////////////////////////////////////////// 4

 Value3 = 2.78;
 Value1 = (int)Value3;
 Console.WriteLine(Value1);
 }

 

در بخش اول سه متغیر از انواع داده ای مختلف تعریف شد.

در بخش دوم یک مغیر int را در یک متغیر long ریخته شده است که مشکلی ایجاد نمی کند.

در بخش سوم یک متغیر long در یک متغیر int ریخته شده است و خروجی عددی نادرست خواهد بود.

و در بخش چهارم یک نوع اعشاری double در یک نوع int ریخته شده که بخش اعشار آن حذف خواهد شد.

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

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

مثل قسمت سوم مثال بالا.

منبع

Msdn.microsoft.com