کلاسها و اشیاء
در سیشارپ، کلاسها و اشیاء پایهٔ برنامهنویسی شیءگرا (OOP) هستند. یک کلاس بهعنوان یک قالب یا blueprint برای تعریف دادهها و رفتارها عمل میکند، در حالی که یک شیء نمونهای واقعی از آن کلاس است که میتواند دادهها را ذخیره و پردازش کند. استفاده از کلاسها و اشیاء کد را ماژولار، قابل نگهداری و قابل توسعه میکند و به پیادهسازی اصول OOP مانند encapsulation، inheritance و polymorphism کمک میکند.
کلاسها میتوانند شامل فیلدها، properties، متدها، constructors و destructors باشند. این عناصر به شما اجازه میدهند تا دادهها و الگوریتمها را بهصورت سازمانیافته مدیریت کنید و سیستمهای پیچیده نرمافزاری را مدل کنید. استفادهٔ صحیح از کلاسها و اشیاء به توسعهدهندگان امکان میدهد کامپوننتهای تستپذیر، مقیاسپذیر و امن بسازند.
در این آموزش، شما خواهید آموخت که چگونه کلاسها را در سیشارپ تعریف کنید، اشیاء را ایجاد و مقداردهی اولیه کنید، properties و متدها را پیادهسازی کنید و مفاهیم inheritance و polymorphism را اعمال نمایید. همچنین، با بهترین روشها در سیشارپ برای جلوگیری از مشکلاتی مانند memory leaks، مدیریت ناکارآمد خطاها و الگوریتمهای کماثر آشنا خواهید شد.
مثال پایه
textusing System;
namespace OOPExample
{
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
{
Name = name;
Age = age;
}
public void ShowInfo()
{
Console.WriteLine($"Name: {Name}, Age: {Age}");
}
}
class Program
{
static void Main(string[] args)
{
Person p1 = new Person("Ali", 30);
p1.ShowInfo();
Person p2 = new Person("Sara", 25);
p2.ShowInfo();
Console.ReadLine();
}
}
}
در این مثال، کلاس Person با دو property به نامهای Name و Age تعریف شده است. Constructor برای مقداردهی اولیه اشیاء استفاده میشود تا اطمینان حاصل شود که دادهها بهدرستی تنظیم شدهاند. متد ShowInfo() به دسترسی کنترلشده به propertyها کمک میکند و اصول encapsulation را نشان میدهد. در متد Main() دو شیء ایجاد شدهاند که هر یک دادههای متفاوتی دارند و نشان میدهد که یک کلاس میتواند چندین instance داشته باشد.
مثال کاربردی
textusing System;
namespace OOPAdvancedExample
{
class Employee
{
public string Name { get; set; }
public int Age { get; set; }
public double Salary { get; set; }
public Employee(string name, int age, double salary)
{
Name = name;
Age = age;
Salary = salary;
}
public virtual void ShowInfo()
{
Console.WriteLine($"Employee: {Name}, Age: {Age}, Salary: {Salary}");
}
}
class Manager : Employee
{
public string Department { get; set; }
public Manager(string name, int age, double salary, string department)
: base(name, age, salary)
{
Department = department;
}
public override void ShowInfo()
{
base.ShowInfo();
Console.WriteLine($"Department: {Department}");
}
}
class Program
{
static void Main(string[] args)
{
Employee e1 = new Employee("Reza", 28, 5000);
e1.ShowInfo();
Manager m1 = new Manager("Leila", 35, 8000, "Sales");
m1.ShowInfo();
Console.ReadLine();
}
}
}
این مثال نشاندهندهٔ استفاده از inheritance و polymorphism است. Employee کلاس پایه است و Manager کلاس مشتق است که property اضافی Department دارد. متد ShowInfo() در کلاس مشتق override شده است تا اطلاعات اضافی نمایش داده شود. Constructor chaining تضمین میکند که تمامی propertyها بهدرستی مقداردهی شوند. این الگو در پروژههای واقعی برای مدلسازی سلسلهمراتب اشیاء و پشتیبانی از الگوریتمهای سازمانیافته کاربرد دارد.
بهترین روشها برای کلاسها و اشیاء در سیشارپ شامل استفاده از properties برای encapsulation، مقداردهی اولیهٔ معتبر با constructors، و استفاده مناسب از inheritance و polymorphism است. استفاده از IDisposable یا آزادسازی منابع به جلوگیری از memory leaks کمک میکند. اشتباهات رایج شامل دسترسی مستقیم به فیلدها، مدیریت ناکافی خطاها و الگوریتمهای غیر بهینه است. برای بهینهسازی عملکرد، از انتخاب دادهساختار مناسب، کاهش فراخوانیهای غیرضروری متد و مدیریت مناسب انواع مقدار و مرجع استفاده کنید. همچنین برای امنیت، دسترسی به دادههای حساس را کنترل و اصل حداقل دسترسی را رعایت نمایید.
📊 جدول مرجع
سیشارپ Element/Concept | Description | Usage Example |
---|---|---|
کلاس | قالب یا blueprint برای اشیاء | class Person { public string Name; } |
شیء | نمونهای از کلاس | Person p = new Person("Ali", 30); |
Constructor | مقداردهی اولیهٔ شیء | public Person(string name) { Name = name; } |
متد | توابع داخل کلاس | public void ShowInfo() { Console.WriteLine(Name); } |
Inheritance | کلاس مشتق از کلاس پایه | class Manager : Employee { } |
Polymorphism | Override متدها در کلاس مشتق | public override void ShowInfo() { } |
کلاسها و اشیاء ابزار اصلی ساخت برنامههای قابل توسعه و نگهداری در سیشارپ هستند. درک درست properties، متدها، constructors، inheritance و polymorphism به طراحی مدلهای شیءگرا و پیادهسازی الگوریتمها کمک میکند. گام بعدی مطالعه interfaces، events و design patterns است تا مهارت شما در سیشارپ کامل شود. استفاده عملی در پروژهها و مراجعه به مستندات رسمی سیشارپ دانش شما را تقویت میکند.
🧠 دانش خود را بیازمایید
آزمون دانش شما
درک خود از این موضوع را با سوالات کاربردی بسنجید.
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود