Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

Constructors

جزء من قسم البرمجة كائنية التوجه في رحلة C# على Coddy. الدرس 7 من 70.

الـ constructor هو method خاص يتم تشغيله عند إنشاء object. ويهيّئ properties وfields الخاصة بالكائن.

منشئ Default بدون parameters

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    
    // المُنشئ الافتراضي
    public Book()
    {
        Title = "Unknown";
        Author = "Unknown";
    }
}

constructor مُعَلَّم بالـ parameters

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    
    // منشئ مع معلمات
    public Book(string title, string author)
    {
        Title = title;
        Author = author;
    }
}

إعادة تحميل Constructor - منشئات متعددة

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    public int Pages { get; set; }
    
    // منشئ بمعاملين
    public Book(string title, string author)
    {
        Title = title;
        Author = author;
        Pages = 0;
    }
    
    // منشئ بثلاثة معاملات
    public Book(string title, string author, int pages)
    {
        Title = title;
        Author = author;
        Pages = pages;
    }
}

تسلسل Constructor باستخدام this

public class Book
{
    public string Title { get; set; }
    public string Author { get; set; }
    public int Pages { get; set; }
    
    // المنشئ الرئيسي
    public Book(string title, string author, int pages)
    {
        Title = title;
        Author = author;
        Pages = pages;
    }
    
    // يستدعي المنشئ الرئيسي مع صفحات افتراضية
    public Book(string title, string author) : this(title, author, 0)
    {
    }
}

إنشاء كائنات باستخدام مُنشئات مختلفة

Book book1 = new Book("1984", "George Orwell");
Book book2 = new Book("Harry Potter", "J.K. Rowling", 500);

تُسمّى Constructors بالاسم نفسه الذي تحمله class، ولا تملك نوع إرجاع. وهي تعمل تلقائيًا عند استخدام الكلمة المفتاحية new. يمكنك امتلاك عدة Constructors بمعلمات مختلفة (التحميل الزائد).

challenge icon

التحدي

متوسط

أنشئ ثلاثة مُنشئات للصنف Product باستخدام التحميل الزائد للمُنشئات وتسلسلها:

  • مُنشئ يحتوي على 3 معلمات: name وprice وstock
  • مُنشئ يحتوي على معلمتين: name وprice (تكون قيمة stock الافتراضية هي 0)
  • مُنشئ افتراضي بلا معلمات (name = "Unknown"، وprice = 0، وstock = 0)

استخدم تسلسل المُنشئات مع this لتجنب تكرار التعليمات البرمجية.

جرّب بنفسك

using System;

class Program
{
    static void Main()
    {
        string name = Console.ReadLine();
        decimal price = decimal.Parse(Console.ReadLine());
        int stock = int.Parse(Console.ReadLine());
        
        Product product1 = new Product(name, price, stock);
        Product product2 = new Product();
        Product product3 = new Product("Keyboard", 79.99m);
        
        Console.WriteLine($"Product 1: {product1.Name} - ${product1.Price} (Stock: {product1.Stock})");
        Console.WriteLine($"Product 2: {product2.Name} - ${product2.Price} (Stock: {product2.Stock})");
        Console.WriteLine($"Product 3: {product3.Name} - ${product3.Price} (Stock: {product3.Stock})");
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس البرمجة كائنية التوجه

تدرّب بنفسك: مترجم C# عبر الإنترنت