در آموزش انواع داده در سی شارپ باید به این نکته توجه داشت که دادهها و متغیرها در این زبان انواع مختلفی داشته و نوع آنها قبل از تعریف یک متغیر باید به طور دقیق تعیین شود. یک دستهبندی کلی برای دادهها در آموزش برنامه نویسی سی شارپ تقسیم آنها به دو دسته دادههای مقداری و دادههای رفرنسی است. دادههای مقداری در واقع متغیرهایی را نمایش میدهند که مقداری در آنها ذخیره شده و از طرف دیگر دادههای رفرنسی متغیرهایی هستند که به یک شی از کلاس اشاره دارند.
هریک از این دو نوع داده دارای کاربردهای خاصی هستند. دادههای مقداری خود از انواع مختلفی تشکیل شدهاند که از جمله آنها میتوان به دادههای عددی، دادههای Boolean، دادههای رشتهای و … اشاره کرد. از طرف دیگر دادههای رفرنسی نیز معمولا به کلاسی اشاره دارند که یا از قبل ساخته شده یا توسط کاربر ایجاد میشود. خود این دادهها نیز به دو دسته دادههای تعریف شده توسط کاربر و دادههای از پیش تعریف شده تقسیم میشوند. در بوت کمپ سی شارپ نیز شما میتوانید خیلی راحت با انواع دادهها و متغیرها در این زبان آشنا شوید. مزیت اصلی بوت کمپ برنامه نویسی سی شارپ این است که تمامی انواع دادهها را در پروژههای واقعی به شما معرفی کرده و کاربردهای آنها را نیز توضیح میدهد
دادههای مقداری در زبان برنامهنویسی سی شارپ
جدول انواع داده در سی شارپ که در ادامه آمده است تمامی متغیرها و دادههای مقداری را به طور مختصر توضیح میدهد:
| نوع داده | بازه مقداری |
| 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,755,808 تا9,223,372,036,854,755,807 |
| Ulong | 0 تا 18,446,744,073,709,551,615 |
| Float | -3.402823e38 تا 3.402823e38 |
| double | -1. 1.79769313486232e308 تا 1.79769313486232e308 |
| Decimal | (+ or -)1.0 x 10e-28 تا 7.9 x 10e28 |
| Char | هر کاراکتر معتبری |
| Bool | True یا false |
| Object | به یک شی از یک کلاس اشاره دارد. |
| String | هر دنبالهای از کاراکترها |
| DateTime | 0:00:00 am 1/1/01
تا 11:59:59 pm 12/31/999 |
دادههای عددی در سی شارپ و کاربردهای آنها
دادههای عددی در سی شارپ زمانی استفاده میشوند که قصد داشته باشید یک مقدار عددی را در متغیری ذخیره کرده و از آن استفاده کنید. وقتی اعداد شما کوچک هستند دادههایی از نوع byte و short یا sbyte و ushort گزینه بهتری برای استفاده هستند که فضای کمتری در حافظه به خود اختصاص میدهند. وقتی که دادههای شما از نوع عدد صحیح بوده و اعداد بزرگتری هستند بهتر است از نوع دادهای int یا uInt بهترین گزینه خواهند بود. زمانی که اعداد صحیح شما خیلی بزرگتر میشوند نیز نوع دادهای Long یا Ulong گزینه معقولتری برای استفاده هستند.
پس از آشنایی با انواع داده های صحیح در سی شارپ باید بدانید که دادههای اعشاری نیز در این زبان قابل استفاده هستند. این دسته از دادهها شامل float و double هستند. اگر دادههای اعشاری شما تعداد ارقام کوچکتری دارند بهتر است از float استفاده کرده و در صورتی که دادههای اعشاری بزرگتر هستند نوع دادهای double گزینه بهتری برای استفاده خواهد بود. بهتر است برای یادگیری بهتر مفاهیم برنامه نویسی سی شارپ، آموزش شی گرایی در سی شارپ را هم ببینید.
در نهایت گاهی اوقات در آموزش برنامه نویسی به زبان سی شارپ ممکن است بخواهید روی پروژههای علمی کار کرده و نیازمند متغیرهایی باشید که مقادیر عددی علمی را در خود ذخیره کنند. نوع دادهای Decimal در اینجا به کمک شما آمده و میتوانید دادههای خود را در متغیرهایی از نوع Decimal ذخیره کنید.
در ادامه میتوانید سینتکس مربوط به تعریف متغیرها با برخی از انواع دادههای عددی که توضیح دادیم را بررسی کنید:
int myNum = 100000;
long myNum = 15000000000L;
float myNum = 5.75F;
double myNum = 19.99D;
float f1 = 35e3F;
double d1 = 12E4D;

دادههای رشتهای و کاراکتری در سی شارپ
کاراکترها از جمله مهمترین انواع دادهها در زبان برنامهنویسی سی شارپ به شمار میآیند. وقتی که قصد دارید یک کاراکتر را درون متغیری ذخیره کرده و بعدا به آن دسترسی پیدا کنید نوع دادهای Char به شما کمک میکند تا بتوانید چنین متغیری را تعریف کنید. برای تعریف یک کاراکتر در زبان سی شارپ به شکل زیر عمل خواهیم کرد:
char myGrade = ‘B’;
حال ممکن است قصد داشته باشید که دنبالهای از کاراکترها را تولید کنید که به آنها رشته گفته میشود. در این شرایط میتوانید از نوع دادهای String برای این کار استفاده کنید. قطعه کد زیر را بررسی کنید:
string greeting = “Hello World”;
به این ترتیب رشته Hello World داخل متغیری به نام greeting ذخیره شده و شما بعدها میتوانید به این مقدار دسترسی پیدا کنید.
دادههای دودویی یا bool
فرض کنید که در یک پروژه شما نیازمند این هستید که بررسی کنید آیا شخصی دسترسی به بخشی از پایگاه داده را دارد یا خیر؟ طبیعی است که پاسخ این سوال بله یا خیر خواهد بود. وقتی که شما نیاز دارید متغیری را تعریف کنید که تنها مقادیر آن بله یا خیر هستند بهترین گزینه برای شما متغیر از نوع bool خواهد بود. این نوع متغیرها یا انواع دادهای دو مقدار true به معنای درست و false به معنای غلط را دریافت میکنند. نحوه استفاده از این نوع متغیرها به شکل زیر خواهد بود:
bool isCSharpFun = true;
bool isFishTasty = false;
فراموش نکنید که تبدیل انواع داده در سی شارپ نیز امکانپذیر است. برای این کار اگر داده فعلی شما سادهتر از دادهای باشد که قصد دارید در متغیر جدید قرار دهید میتوانید به طور مستقیم و به شکل زیر این کار را انجام دهید:
int i = 345;
float f = i;
اما اگر داده فعلی شما پیچیدهتر از داده متغیر جدید باشد نیازمند casting خواهید بود که به شکل زیر قابل انجام است:
public static void Main()
{
int i = 100;
uint u = (uint) i;
Console.Write(i);
}
داده های مشخص
دادههای مشخص، یکی از انواع داده ها در سی شارپ هستند که در واقع از پیش داخل این زبان برنامهنویسی تعریف شدهاند و شما میتوانید بهراحتی به آنها دسترسی پیدا کنید. از جمله مهمترین دادههای مشخص در زبان برنامهنویسی سی شارپ، عبارتاند از:
1- Bool: این نوع دادهها، با دو مقدار true و false مقداردهی میشوند و میتوانند یک حالت 0 و 1 را برای شما ایجاد کنند.
2- float: این یک نوع داده عددی است که امکان ذخیرهسازی انواع اعداد اعشاری را برای شما فراهم میکند.
3- int: این نوع داده، برای ذخیرهسازی و مقداردهی متغیرهایی کاربرد دارد که قصد دارید یک عدد صحیح را در آنها ذخیره کنید.
4- char: وقتی که قصد دارید یک کاراکتر را درون متغیری ذخیره کنید، میتوانید از این نوع داده در سی شارپ استفاده کنید.
داده های ارجاعی در متغیرهای سی شارپ
دادههای ارجاعی، یکی از پرکاربردترین انواع دادههایی هستند که در زبان برنامهنویسی سی شارپ استفاده شده و در واقع متغیرهایی که این نوع دادهها را دریافت میکنند، اطلاعات را مستقیما در خود ذخیره نمیکنند، بلکه این متغیرها، محلی از حافظه که مقدار مربوطه در آن ذخیره شده است را در خود نگهداری میکنند. کاربرد اصلی این نوع دادهها در زبان سی شارپ، زمانی است که شما قصد دارید چند نوع داده مختلف را بهعنوان یک نوع دادهای جدید در سی شارپ ذخیره کرده و تمامی آنها را بهصورت یکجا نگهداری کرده و به آنها دسترسی پیدا کنید.
برای مثال، Class یکی از انواع دادههای ارجاعی است که شما میتوانید در آن انواع ویژگیها و متدها را تعریف کرده و هر شی جدیدی که از یک کلاس ایجاد کنید، در یک متغیر بهصورت ارجاعی ذخیره خواهد شد. دادههای دیگری همچون آرایهها، اینترفیسها و همینطور Delegateها در زبان برنامهنویسی سی شارپ نیز از نوع دادههای ارجاعی به شمار میآیند.
نوع دادهای مقداری ساخته شده توسط کاربر
در بخش قبلی درباره دادههای مقداری متغیرها در سی شارپ صحبت کردیم. توجه داشته باشید که تمامی موارد بیان شده دادههایی هستند که بهصورت پیشفرض در زبان برنامهنویسی سی شارپ ایجاد شدهاند. حال گاهی اوقات ممکن است خود کاربر بخواهد دادههای مقداری را در زبان برنامهنویسی سی شارپ ایجاد کند. این امکان نیز وجود دارد که در این بخش از آموزش انواع داده در سی شارپ درباره آن صحبت خواهیم کرد.
یکی از این نوع دادهای، انواع ساختمان داده در سی شارپ به شمار میآیند. برای مثال شما میتوانید آرایهها را در زبان برنامهنویسی سی شارپ ایجاد کنید. ساختمانهای داده در واقع نوعی متغیر هستند که توسط کاربر تعریف میشوند و نیازی به وراثت یا رفرنس دادن ندارند. زمانی که یک ساختار به متغیری جدید اختصاص داده میشود در اصل یک کپی از آن ایجاد خواهد شد. نباید فراموش کرد که ساختمان دادهها خود دارای فیلدها، ویژگیها و متدهای مخصوص به خود هستند. قطعه کد زیر را مشاهده کنید:
//C# program to demonstrate the structure
using System;
// Define a struct representing a Point
struct Point
{
// Data members (fields) of the structure
public int X;
public int Y;
// Constructor to initialize the Point
public Point(int x, int y)
{
X = x;
Y = y;
}
// Function member (method) to print the Point’s coordinates
public void PrintCoordinates()
{
Console.WriteLine($”X: {X}, Y: {Y}”);
}
}
class Program
{
static void Main()
{
// Create a Point object using the default constructor
Point point1 = new Point();
// Set the X and Y coordinates using the fields
point1.X = 10;
point1.Y = 20;
// Print the coordinates of point1
Console.WriteLine(“Coordinates of point1:”);
point1.PrintCoordinates();
// Create a Point object using the parameterized constructor
Point point2 = new Point(5, 15);
// Print the coordinates of point2
Console.WriteLine(“Coordinates of point2:”);
point2.PrintCoordinates();
}
}
خروجی این قطعه کد به شکل زیر خواهد بود:
Coordinates of point1:
X: 10, Y: 20
Coordinates of point2:
X: 5, Y: 15
در ادامه نوع دادهای Enumeration وجود دارد که امکان دسترسی به مجموعهای از ثابتها را در زبان برنامهنویسی سی شارپ برای شما فراهم میکند. وقتی که چند گزینه در پروژه خود دارید که قصد دارید آنها را در یک مجموعه تعریف کنید امکان استفاده از نوع دادهای Enumeration برای شما فراهم میشود. نحوه استفاده از آن به شکل زیر خواهد بود:
//C# program to illustrate the enums
using System;
public class Program
{
// Define an enum for days of the week
public enum DaysOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
public static void Main()
{
// Using enums in C#
// Example 1: Assigning an enum value to a variable
DaysOfWeek today = DaysOfWeek.Wednesday;
Console.WriteLine(“Today is: ” + today);
// Example 2: Comparing enum values
if (today == DaysOfWeek.Saturday || today == DaysOfWeek.Sunday)
{
Console.WriteLine(“It’s the weekend!”);
}
else
{
Console.WriteLine(“It’s a weekday.”);
}
// Example 3: Enum iteration
Console.WriteLine(“\nAll days of the week:”);
foreach (DaysOfWeek day in Enum.GetValues(typeof(DaysOfWeek)))
{
Console.WriteLine(day);
}
}
}
خروجی قطعه کد بالا به شکل زیر است:
Today is: Wednesday
It’s a weekday.
All days of the week:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
نوع داده رفرنسی
این نوع دادهها در واقع از متغیرهایی تشکیل میشوند که یک مقدار واقعی در آنها ذخیره نمیشود؛ بلکه حاوی ارجاع به دیگر متغیرها خواهند بود و به همین علت نیز دادههای رفرنسی نامیده میشوند. زمانی که یکی از دادههایی که به آن رفرنس داده شده است تغییر میکند، متغیر دیگر به طور خودکار این تغییر را لحاظ خواهد کرد و این اصلیترین مزیتی است که نوع دادههای رفرنسی ارائه میدهند.
در آموزش انواع داده در سی شارپ باید به این موضوع توجه داشت که دو نوع داده رفرنسی در زبان سی شارپ وجود دارند که عبارتاند از:
- دادههایی که از پیش تعریف شدهاند: مانند دادههای رفرنسی رشتهای
- دادههای تعریف شده توسط کاربر: مانند اشیائی که در کلاسها ساخته میشوند یا نمونههایی که از interfaceها در زبان برنامهنویسی سی شارپ ایجاد میشوند.
نوع دادهای Object
این دسته از انواع داده های ارجاعی در متغیرهای سی شارپ بهصورت پیشفرض در زبان برنامهنویسی سی شارپ ایجاد شدهاند. آنها اصلیترین نوع داده در زبان برنامهنویسی سی شارپ هستند که سایر انواع داده از روی آن به ارث برده شدهاند. قطعه کد زیر را بررسی کنید تا بیاموزید که چگونه میتوانید از این نوع دادهای استفاده کنید:
//C# program to demonstrate the object data type
using System;
class Program
{
static void Main()
{
// Create variables of object type
object obj1 = 42; // An int value
object obj2 = “Hello, world!”; // A string value
object obj3 = 3.14; // A double value
// Create an array of objects to store different data types
object[] myObjects = { obj1, obj2, obj3 };
// Access elements and perform type-specific operations
foreach (object obj in myObjects)
{
if (obj is int)
{
int intValue = (int)obj;
Console.WriteLine(“Integer Value: ” + intValue);
}
else if (obj is a string)
{
string stringValue = (string)obj;
Console.WriteLine(“String Value: ” + stringValue);
}
else if (obj is double)
{
double doubleValue = (double)obj;
Console.WriteLine(“Double Value: ” + doubleValue);
}
else
{
Console.WriteLine(“Unknown data type!”);
}
}
}
}
خروجی کد بالا به شکل زیر است:
Integer Value: 42
String Value: Hello, world!
Double Value: 3.14
نوع دادهای داینامیک در سی شارپ
این نوع دادهای نیز از نوع رفرنس به شمار میآید که امکانی را در اختیار برنامهنویسان سی شارپ قرار میدهد تا بتوانند در یک متغیر هر نوع دادهای که مدنظر دارند را استفاده کنند. برای مثال قطعه کد زیر را مشاهده کنید:
//C# program to demonstrate the dynamic data type
using System;
class Program{
static void Main()
{
// Declare a dynamic type variable
dynamic dynamicVar;
// Assign an int value to the dynamic variable
dynamicVar = 42;
Console.WriteLine(“Dynamic Variable as int: ” + dynamicVar);
// Assign a string value to the dynamic variable
dynamicVar = “Hello, world!”;
Console.WriteLine(“Dynamic Variable as string: ” + dynamicVar);
// Assign a double value to the dynamic variable
dynamicVar = 3.14;
Console.WriteLine(“Dynamic Variable as double: ” + dynamicVar);
// Perform dynamic operations
dynamic result = AddNumbers(5, 10);
Console.WriteLine(“Dynamic Operation: ” + result);
}
// Dynamic method that adds two numbers
static dynamic AddNumbers(dynamic a, dynamic b)
{
return a + b;
}
}
خروجی کد بالا به شکل زیر خواهد بود:
Dynamic Variable as int: 42
Dynamic Variable as a string: Hello, world!
Dynamic Variable as double: 3.14
Dynamic Operation: 15
سخن پایانی
آموزش انواع داده در سی شارپ به شما کمک میکند تا بتوانید دادههای مختلف در این زبان را بشناسید و از آنها به شکلی درست استفاده کنید. در بوت کمپ آموزش برنامه نویسی سی شارپ تجربه عملی کار با داده ها را کسب کنید


