Menu
CoddyTech

Object Initializers

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

توفر مُهيِّئات الكائنات طريقة ملائمة لتعيين قيم الخصائص عند إنشاء كائن، دون استدعاء مُنشئ ذي معلمات كثيرة.

الطريقة التقليدية باستخدام المُنشئ

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
}

Person person = new Person();
person.Name = "Alice";
person.Age = 25;
person.City = "New York";

استخدام صياغة مُهيِّئ الكائن

Person person = new Person
{
    Name = "Alice",
    Age = 25,
    City = "New York"
};

مهيئات الكائنات مع المُنشئات

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
    
    public Person(string name)
    {
        Name = name;
    }
}

// يعيّن المُنشئ Name، ويعيّن المُهيِّئ الخصائص الأخرى
Person person = new Person("Bob")
{
    Age = 30,
    City = "London"
};

مهيئات الكائنات المتداخلة

public class Address
{
    public string Street { get; set; }
    public string City { get; set; }
}

public class Person
{
    public string Name { get; set; }
    public Address Address { get; set; }
}

Person person = new Person
{
    Name = "Charlie",
    Address = new Address
    {
        Street = "123 Main St",
        City = "Boston"
    }
};

إنشاء عدة كائنات باستخدام المُهيِّئات

Person person1 = new Person { Name = "Alice", Age = 25 };
Person person2 = new Person { Name = "Bob", Age = 30 };
Person person3 = new Person { Name = "Charlie", Age = 35 };

تجعل مهيئات الكائنات الشيفرة أنظف وأسهل قراءة. تُضبط الخصائص بعد تنفيذ المُنشئ. يمكنك استخدام المهيئات مع مَعلمات المُنشئ أو من دونها، مما يجعل إنشاء الكائنات مرنًا وموجزًا.

challenge icon

التحدي

متوسط

أنشئ ثلاثة كائنات من Student باستخدام أساليب مختلفة لمهيئات الكائنات:

  • student1: استخدم المُنشئ الافتراضي مع مهيئ كائن لتعيين جميع الخصائص (Name وStudentId وMajor وGPA) من الإدخال
  • student2: استخدم مهيئ كائن لتعيين Name = "Bob" وMajor = "Engineering" فقط
  • student3: استخدم المُنشئ مع "Charlie" كمعامل، ثم استخدم مهيئ كائن لتعيين StudentId = 54321 وMajor = "Mathematics" وGPA = 3.5

جرّب بنفسك

using System;

class Program
{
    static void Main()
    {
        string name = Console.ReadLine();
        int studentId = int.Parse(Console.ReadLine());
        string major = Console.ReadLine();
        double gpa = double.Parse(Console.ReadLine());
        
        // TODO: أنشئ student1 باستخدام مهيئ الكائن مع جميع الخصائص
        // استخدم المُنشئ الافتراضي وعيّن Name وStudentId وMajor وGPA
        
        // TODO: أنشئ student2 باستخدام مهيئ الكائن مع Name وMajor فقط
        // يجب أن تكون قيمة Name هي "Bob"، وقيمة Major هي "Engineering"
        
        // TODO: أنشئ student3 باستخدام المُنشئ الذي يأخذ وسيط الاسم "Charlie"
        // ثم استخدم مهيئ الكائن لتعيين StudentId = 54321 وMajor = "Mathematics" وGPA = 3.5
        
        Console.WriteLine($"Student 1: {student1.Name} (ID: {student1.StudentId}) - {student1.Major}, GPA: {student1.GPA}");
        Console.WriteLine($"Student 2: {student2.Name} (ID: {student2.StudentId}) - {student2.Major}, GPA: {student2.GPA}");
        Console.WriteLine($"Student 3: {student3.Name} (ID: {student3.StudentId}) - {student3.Major}, GPA: {student3.GPA}");
    }
}
quiz iconاختبر نفسك

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

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

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