در این پست میخواهیم یاد بگیریم یک کلاس ساده بسازیم و ازش استفاده کنیم؛ کلاسی که تقریباً چیزهای مهم و اصلی یک کلاس رو داشته باشه. بیایید با یه مثال شروع کنیم و خط به خط اون رو توضیح بدیم تا برای کسایی که تازه برنامهنویسی رو شروع کردن، همه چیز روشن بشه.
فرض کنید میخواهیم یه کلاس به اسم Student بسازیم. کدش اینجوریه:
public class Student
{
private string Name { get; set; }
}
public Student(string name)
{
Name = name;
}
public string Introduce()
{
return $"سلام، من {Name} هستم.";
}
}
هر چیزی که به کلاس مربوط میشه، باید بین دو آکولاد {} نوشته بشه. حالا بیایم خط به خط این کد رو توضیح بدیم:
تعریف کلاس:
public class Student
اینجا داریم میگیم که میخواهیم یه کلاس به اسم Student بسازیم. کلمه public یعنی این کلاس از جاهای دیگه توی برنامه قابل دسترسه. کلاس مثل یه نقشه یا قالب میمونه که ما ازش برای ساختن چیزهای مشخص (مثل یه دانشجو با اسم خاص) استفاده میکنیم.
متغیر خصوصی:
private string Name { get; set; }
توی این خط، یه متغیر به اسم Name تعریف کردیم که از نوع رشته (string) هست. کلمه private یعنی این متغیر فقط داخل همین کلاس قابل دسترسی است .. { get; set; } هم به ما اجازه میده که از داخل کلاس، مقدار این متغیر رو بخونیم یا تغییر بدیم.
سازنده کلاس:
public Student(string name)
{
Name = name;
}
این قسمت که بهش سازنده میگن موقع نمونه سازی از کلاس ، صدا زده میشه تا همه چیز رو فراهم کنه یکی از کارهایی که این سازنده انجام میده اینه که متغیر Name رو با اسمی که ما میدیم پر میکنه. مثلاً اگه بنویسیم.
Student s = new Student("رضا");
متغیر Name میشه " رضا " .
تابع Introduce (معرفی) :
public string Introduce()
{
return $"سلام، من {Name} هستم.";
}
این یه تابع عمومیه که ما پس از نمونه سازی از کلاس می تونیم با کمک نام کلاس نمونه به این متد دسترسی داشته باشیم و اون رو اصطلاحا صداش کنیم. وقتی این تابع اجرا بشه ، یه جمله مثل "سلام، من رضا هستم" به ما برمیگردونه. .
چرا متغیر Name رو خصوصی کردیم؟
اگه Name رو بجای private با public تعریف می کردیم ، هر کسی از بیرون کلاس می تونست مستقیم بیاد و مقدارش رو عوض کنه ، مثلا بنویسه
Student.Name = "Reza"
ولی حالا که خصوصی تعریفش کردیم، فقط از داخل کلاس و از طریق تابعهایی که خودمون مینویسیم میشه بهش دسترسی داشت یا تغییرش داد. به این کار میگن کپسوله کردن، یعنی اطلاعات رو توی کلاس محافظت میکنیم و جل تغییرات ناخواسته رو می گیریم .
مثلاً اگه بخوایم یه قانون بذاریم که اسم حتماً چه خصوصیاتی داشته باشه می تونیم با شرط قرار دادن آن اسم ها را کنترل کنیم.
فرض کنید میخواهیم توی برنامهمون از این کلاس استفاده کنیم. میتونیم اینجوری بنویسیم:
Student student1 = new Student("رضا");
Console.WriteLine(student1.Introduce());
خروجی این کد میشه: سلام، من رضا هستم.
چرا این کار مهمه؟
کلاس مثل یه جعبهست که هم اطلاعات (مثل اسم دانشجو) رو نگه میداره و هم کارهایی که میتونیم باهاش انجام بدیم (مثل معرفی کردن). با خصوصی کردن متغیرها و استفاده از تابعها، ما مطمئن میشیم که همه چیز توی برنامهمون منظم و قابل کنترله. این روش باعث میشه برنامههامون وقتی بزرگتر میشن، راحتتر مدیریت بشن و کمتر خطا داشته باشن.
به همین سادگی! حالا یه کلاس ساده ساختیم و میتونیم ازش برای چیزهای پیچیدهتر استفاده کنید.
پست یازدهم: آرایههای چندبعدی (Multi-dimensional Arrays)
سلام به همه! توی یازدهمین و آخرین پست از سری آشنایی ساده با ساز و کارهای ذخیره داده در C#، نوبت آرایههای چندبعدی شده. این آرایهها مثل یه جدول یا مکعب دادهها هستن که میتونید توشون اطلاعات رو چندبعدی ذخیره کنید.
آرایههای چندبعدی (Multi-dimensional Arrays)
آرایههای چندبعدی به شما اجازه میدن دادهها رو توی یه ساختار شبکهای (مثل سطر و ستون) ذخیره کنید. برای کارایی مثل جدول یا ماتریس عالیه.
مثال:
int[,] matrix = new int[2, 3]
{
{1, 2, 3},
{4, 5, 6}
};
Console.WriteLine(matrix[1, 2]); // عدد سطر دوم، ستون سوم
توضیح: اینجا یه آرایه دوبعدی ساختیم که ۲ سطر و ۳ ستون داره. با [1, 2] به عدد سطر دوم، ستون سوم (یعنی ۶) دسترسی پیدا کردیم.
خروجی میشه: 6
پایان سری
اینجا به آخر خط این سری ۱۱ قسمتی رسیدیم! امیدوارم این پستها براتون مفید بوده باشه و حالا با ابزارهای مختلف ذخیره داده در C# راحتتر کار کنید. نظراتتون رو برام بنویسید و بگید کدوم روش رو بیشتر دوست دارید! تا بعد، موفق باشید!
پست دهم: ساختارها (Structs)
سلام دوستان! توی دهمین پست از سری آشنایی ساده با ساز و کارهای ذخیره داده در C# ، میریم سراغ ساختارها. ساختارها شبیه کلاسها هستن، ولی سبکتر و برای دادههای سادهتر به کار میرن.
ساختارها (Structs)
ساختارها (Struct) یه روش برای ذخیره دادهها با ساختار مشخص هستن، ولی برخلاف کلاسها، مقدارشون مستقیم ذخیره میشه و معمولاً برای چیزای کوچک استفاده میشن.
مثال:
struct Point
{
public int X { get; set; }
public int Y { get; set; }
}
Point p = new Point { X = 5, Y = 10 };
Console.WriteLine($"X: {p.X}, Y: {p.Y}");
توضیح: اینجا یه ساختار Point ساختیم که مختصات X و Y رو نگه میداره. یه نمونه ازش ایجاد کردیم و مقدار دادیم.
خروجی میشه : X : 5 Y : 10
پست بعدی درباره آرایههای چندبعدی (Multi-dimensional Arrays) خواهد بود. منتظر باشید!