آموزش سی شارپ

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

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

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

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

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

تصویر 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
byte8-bit unsigned integer0 to 2550
char16-bit Unicode characterU +0000 to U +ffff‘\0’
decimal128-bit precise decimal values with 28-29 significant digits(-7.9 x 1028 to 7.9 x 1028) / 100to 280.0M
double64-bit double-precision floating point type(+/-)5.0 x 10-324 to (+/-)1.7 x 103080.0D
float32-bit single-precision floating point type-3.4 x 1038 to + 3.4 x 10380.0F
int32-bit signed integer type-2,147,483,648 to 2,147,483,6470
long64-bit signed integer type-9,223,372,036,854,775,808 to 9,223,372,036,854,775,8070L
sbyte8-bit signed integer type-128 to 1270
short16-bit signed integer type-32,768 to 32,7670
uint32-bit unsigned integer type0 to 4,294,967,2950
ulong64-bit unsigned integer type0 to 18,446,744,073,709,551,6150
ushort16-bit unsigned integer type0 to 65,5350

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

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

امتحان کنید

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

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

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

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

  • object
  • dynamic
  • string

1- نوع داده Object

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

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

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

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

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

3- نوع داده String

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

و

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

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

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

برای مثال:

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

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