آموزش انواع داده در سی شارپ
مقدمه
سیشارپ (C#) یکی از زبانهای برنامهنویسی پرکاربرد و محبوب است که توسط مایکروسافت توسعه یافته است. این زبان برای برنامهنویسی تحت ویندوز، وب، و برنامههای موبایل استفاده میشود و بخشی از فریمورک داتنت (.NET Framework) است. سیشارپ یک زبان برنامهنویسی سطح بالا و چندمنظوره است که ترکیبی از سادگی زبانهای سطح بالا و قدرت و انعطافپذیری زبانهای سطح پایین را ارائه میدهد. در این مقاله، به معرفی انواع دادهها در سیشارپ و نحوه استفاده از آنها خواهیم پرداخت.
انواع دادهها در سیشارپ
در سیشارپ، انواع دادهها به دو دسته اصلی تقسیم میشوند: انواع دادههای مقداری (Value Types) و انواع دادههای مرجع (Reference Types). هر یک از این دستهها ویژگیها و رفتارهای خاص خود را دارند.
انواع دادههای مقداری (Value Types)
انواع دادههای مقداری، دادههایی هستند که مستقیماً مقادیر را در حافظه ذخیره میکنند. هنگامی که یک نوع داده مقداری به یک متغیر اختصاص داده میشود، مقدار آن مستقیماً درون آن متغیر ذخیره میشود. این نوع دادهها به صورت پیشفرض در پشته (stack) ذخیره میشوند.
انواع اصلی دادههای مقداری
- اعداد صحیح (Integer Types):
- byte: عدد صحیح بدون علامت 8 بیتی (0 تا 255)
- sbyte: عدد صحیح با علامت 8 بیتی (-128 تا 127)
- short: عدد صحیح با علامت 16 بیتی (-32768 تا 32767)
- ushort: عدد صحیح بدون علامت 16 بیتی (0 تا 65535)
- int: عدد صحیح با علامت 32 بیتی (-2,147,483,648 تا 2,147,483,647)
- uint: عدد صحیح بدون علامت 32 بیتی (0 تا 4,294,967,295)
- long: عدد صحیح با علامت 64 بیتی (-9,223,372,036,854,775,808 تا 9,223,372,036,854,775,807)
- ulong: عدد صحیح بدون علامت 64 بیتی (0 تا 18,446,744,073,709,551,615)
- اعداد اعشاری (Floating-Point Types):
- float: عدد اعشاری 32 بیتی (7 رقمی)
- double: عدد اعشاری 64 بیتی (15-16 رقمی)
- decimal: عدد اعشاری 128 بیتی (28-29 رقمی)
- نوع بولی (Boolean Type):
- bool: نوع دادهای که فقط دو مقدار true یا false را میپذیرد.
- نوع کاراکتر (Character Type):
- char: یک کاراکتر یونیکد 16 بیتی.
دادههای مرجع (Reference Types)
دادههای مرجع، دادههایی هستند که به آدرسهای حافظه اشاره میکنند که مقادیر واقعی در آنها ذخیره شده است. هنگامی که یک نوع داده مرجع به یک متغیر اختصاص داده میشود، آدرس حافظهای که مقدار در آن ذخیره شده است درون متغیر ذخیره میشود. این نوع دادهها به صورت پیشفرض در هیپ (heap) ذخیره میشوند.
انواع اصلی دادههای مرجع
- رشتهها (Strings):
string: نوع دادهای که رشتهای از کاراکترها را نگه میدارد. رشتهها در سیشارپ به صورت کلاسهایی از نوع System.String پیادهسازی شدهاند.
- آرایهها (Arrays):
آرایهها مجموعهای از مقادیر از نوع دادههای مشابه هستند. در سیشارپ، آرایهها میتوانند یک بعدی، دو بعدی یا چند بعدی باشند.
- نوع کلاس (Class Type):
کلاسها ساختارهای دادهای پیچیدهای هستند که میتوانند فیلدها، متدها، و خصوصیات را در خود جای دهند. کلاسها نوعهای مرجع هستند و از طریق آدرسهای حافظه مدیریت میشوند.
- نوع واسط (Interface Type):
واسطها قراردادهایی را تعریف میکنند که کلاسها میتوانند پیادهسازی کنند. واسطها تنها شامل تعاریف متدها و خصوصیات هستند و پیادهسازی آنها را به کلاسهای دیگر واگذار میکنند.
- نوع نماینده (Delegate Type):
نمایندهها نوع خاصی از انواع مرجع هستند که اشارهگر به متدها را نگه میدارند و برای تعریف رویدادها و فراخوانیهای غیرهمگام استفاده میشوند.
تفاوتهای کلیدی بین انواع دادههای مقداری و مرجع
یکی از تفاوتهای اصلی بین انواع دادههای مقداری و مرجع در نحوه مدیریت حافظه آنها است. انواع دادههای مقداری به صورت مستقیم در پشته ذخیره میشوند، در حالی که انواع دادههای مرجع در هیپ ذخیره شده و اشارهگرهایی به آدرسهای حافظه دارند.
همچنین، هنگامی که یک نوع داده مقداری به یک متغیر دیگر اختصاص داده میشود، مقدار آن کپی میشود. اما در مورد انواع دادههای مرجع، تنها آدرس حافظه کپی میشود و هر دو متغیر به یک شیء در حافظه اشاره میکنند.
نحوه استفاده از انواع دادهها در سیشارپ
مثالهایی از انواع دادههای مقداری
int age = 30;
float height = 5.9f;
bool isMarried = true;
char initial = 'A';
مثالهایی از انواع دادههای مرجع
string name = "John Doe";
int[] numbers = { 1, 2, 3, 4, 5 };
Person person = new Person();
تعریف کلاس و استفاده از آن
پایگاه داده SQL Server رو قورت بده! بدون کلاس، سرعت 2 برابر، ماندگاری 3 برابر، پولسازی بلافاصله ... دانلود:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
Person person = new Person();
person.Name = "Jane Doe";
person.Age = 28;
استفاده از آرایهها
int[] scores = new int[5];
scores[0] = 90;
scores[1] = 85;
scores[2] = 88;
scores[3] = 92;
scores[4] = 95;
استفاده از رشتهها
string greeting = "Hello, World!";
string upperGreeting = greeting.ToUpper();
string lowerGreeting = greeting.ToLower();
int length = greeting.Length;
نتیجهگیری
سیشارپ با ارائه انواع دادههای مختلف، انعطافپذیری و قدرت زیادی به برنامهنویسان میدهد. انواع دادههای مقداری و مرجع هر کدام کاربردها و مزایای خاص خود را دارند و شناخت دقیق آنها به برنامهنویسان کمک میکند تا برنامههایی کارآمدتر و بهینهتر بنویسند. با استفاده از این انواع دادهها، میتوان برنامههای پیچیده و متنوعی را با استفاده از سیشارپ توسعه داد و نیازهای مختلف کاربران و سیستمها را برآورده کرد.