آموزش سی شارپ

مباحث پایه سی شارپ

مباحث پیشرفه سی شارپ

دستورات سی شارپ

انواع داده ها در سی شارپ – آموزش سی شارپ

  • سه شنبه ۲ مرداد ۱۳۹۷
  • بازدید ۷۷۰ نفر

csharp data types 1811 تصویر

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

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

متغیرها در سی شارپ به صورت زیر تقسیم می شوند:

  • Value types
  • Reference types
  • Pointer types

نوع ارزش (Value Type)

متغیر ها یا نوع های Value Type از کلاس System.ValueType مشتق شده اند و می توانند به طور مستقیم مقدار دهی شوند. متغیر هایی که از نوع int، float و char تعریف می شوند، همگی Value Type هستند.  زمانی که شما یک متغیر از نوع int تعریف می کنید، سیستم مقداری از حافظه را برای ذخیره سازی مقدار این متغیر در نظر می گیرد.

در جدول زیر لیست نوع هایی که از دسته Value Type هستند را مشاهده می کنید:

نوعمقداری که ذخیره می کندمحدودهمقدار پیشفرض
boolBoolean valueTrue or FalseFalse
byte۸-bit unsigned integer۰ to 255۰
char۱۶-bit Unicode characterU +0000 to U +ffff‘\۰’
decimal۱۲۸-bit precise decimal values with 28-29 significant digits(-۷٫۹ x 1028 to 7.9 x 1028) / 100to 28۰٫۰M
double۶۴-bit double-precision floating point type(+/-)۵٫۰ x 10-324 to (+/-)1.7 x 10308۰٫۰D
float۳۲-bit single-precision floating point type-۳٫۴ x 1038 to + 3.4 x 1038۰٫۰F
int۳۲-bit signed integer type-۲,۱۴۷,۴۸۳,۶۴۸ to 2,147,483,647۰
long۶۴-bit signed integer type-۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۸ to 9,223,372,036,854,775,807۰L
sbyte۸-bit signed integer type-۱۲۸ to 127۰
short۱۶-bit signed integer type-۳۲,۷۶۸ to 32,767۰
uint۳۲-bit unsigned integer type۰ to 4,294,967,295۰
ulong۶۴-bit unsigned integer type۰ to 18,446,744,073,709,551,615۰
ushort۱۶-bit unsigned integer type۰ to 65,535۰

برای فهمیدن اندازه دقیق یک نوع یا یک متغیر در یک پلت فرم خاص، می توانید از متد sizeof استفاده کنید. دستور sizeof(type)، مقدار حافظه ای که برای ذخیره سازی شیء یا نوع لازم است را بر حسب byte برمی گراند.

مثال زیر مقدار حافظه اختصاص داده شده به نوع int را نشان می دهد:

امتحان کنید

زمانی که کد بالا توسط کامپایلر سی شارپ کامپایل و اجرا شود نتیجه زیر را مشاهده خواهید کرد:

نوع ارجاع (Reference Type)

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

چند نمونه از Reference Type های درون ساخت در زبان برنامه نویسی سی شارپ:

  • object
  • dynamic
  • string

۱- نوع داده Object

نوع داده Object، کلاس پایه نهایی برای همه انواع داده در CTS (Common Type System) می باشد. Object نام مستعار کلاس System.Object می باشد. متغیری که از نوع object تعریف شود، می تواند توسط انواع داده های دیگر (مانند Value Type، Reference Type و نوع های تعریف شده توسط کاربر) مقدار دهی شود. با این حال، قبل از مقدار دهی باید تبدیل شوند. زمانی که یک Value Type به Object Type تبدیل می شود، به آن boxing می گویند. و زمانی که یک Object Type به Value Type تبدیل می شود، به آن unboxing گفته می شود.

۲- Dynamic Type (نوع داده پویا)

شما می توانید هر نوع داده ایی را در متغیر های dynamic ذخیره کنید. نوع داده ذخیره شده در متغیر هایی که به صورت dynamic تعریف می شوند، در هنگام اجرا مشخص می شود. یعنی اگر مقدار ۱۰۰ را در متغیر ذخیره کنید، نوع متغیر در لحظه اجرا int می شود، یا اگر مقدار “test” ذخیره کنید، نوع متغیر در لحظه اجرا string می شود.

مثالی از نوع داده dynamic:

نوع داده dynamic شبیه به نوع داده object می باشد اما نوع مقدار ذخیره شده در نوع object در هنگام کامپایل تعیین می شود ولی در نوع dynamic در هنگام اجرای برنامه مشخص می شود.

۳- نوع داده String

نوع داده String برای ذخیره هر مقدار رشته ای، استفاده می شود. نوع داده String نام مستعار کلاس System.String می باشد و از نوع Object مشتق شده است. مقداری که برای این نوع داده مشخص می شود، به دو صورت زیر مشخص می شود:

و

تمامی کلاس ها، interface ها و delegate های تعریف شده توسط کاربر از نوع داده reference می باشند.

نوع اشاره گر (Pointer types)

نوع داده اشاره گر آدرس محل حافظه یک نوع دیگر را در خود نگهداری می کند. تمامی قابلیت هایی که اشاره گرها در زبان C و زبان C++ داشتند، در زبان C# نیز وجود دارد.

برای مثال:

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است