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

الخصائص المطبقة تلقائيًا (Auto-Implemented Properties)

جزء من قسم Object Oriented Programming في رحلة C# على Coddy — الدرس 10 من 70.

تسمح لك الخصائص المنفذة تلقائياً (Auto-implemented properties) بالتصريح عن الخصائص دون كتابة حقول دعم صريحة. يقوم المترجم بإنشاء حقل خاص مخفي تلقائياً خلف الكواليس.

بدلاً من كتابة هذا الكود المطول:

public class Product
{
    private string name;
    
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
}

يمكنك ببساطة كتابة:

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Quantity { get; set; }
}

يمكنك أيضاً تعيين قيم افتراضية مباشرة في التصريح:

public class Product
{
    public string Name { get; set; } = "Unnamed";
    public decimal Price { get; set; } = 0.0m;
    public bool IsAvailable { get; set; } = true;
}

تعد الخصائص المنفذة تلقائيًا (Auto-implemented properties) مثالية عندما لا تحتاج إلى التحقق من الصحة أو منطق مخصص في الـ getter أو الـ setter. فهي تحافظ على نظافة الفئات (classes) الخاصة بك وتقلل من الكود المتكرر (boilerplate code) بشكل كبير.

challenge icon

التحدي

سهل

لنقم ببناء نظام مخزون بسيط باستخدام الخصائص المنفذة تلقائيًا (auto-implemented properties) لتتبع العناصر في المتجر.

ستقوم بإنشاء ملفين لتنظيم الكود الخاص بك:

  • Item.cs: قم بتعريف فئة Item داخل مساحة الأسماء Inventory مع خصائص منفذة تلقائيًا لـ Name (string)، و Price (decimal)، و InStock (bool). قم بتعيين القيم الافتراضية: يجب أن تكون القيمة الافتراضية لـ Name هي "Unknown"، ولـ Price هي 0.0m، ولـ InStock هي true.
  • Program.cs: في ملفك الرئيسي، قم بإنشاء كائنين من نوع Item باستخدام ممهدات الكائنات (object initializers). اقرأ الاسم والسعر لكل عنصر من المدخلات، ثم اطبع تفاصيل كل عنصر.

ستتلقى أربعة مدخلات:

  • اسم العنصر الأول
  • سعر العنصر الأول
  • اسم العنصر الثاني
  • سعر العنصر الثاني

اطبع كل عنصر بهذا التنسيق:

Item: {Name}, Price: {Price}, In Stock: {InStock}

على سبيل المثال، إذا كانت المدخلات هي Laptop، و 999.99، و Mouse، و 25.50، يجب أن يكون المخرج:

Item: Laptop, Price: 999.99, In Stock: True
Item: Mouse, Price: 25.50, In Stock: True

ورقة مرجعية

تسمح لك الخصائص المنفذة تلقائيًا (Auto-implemented properties) بالتصريح عن الخصائص دون كتابة حقول دعم (backing fields) صريحة. يقوم المترجم (compiler) تلقائيًا بإنشاء حقل خاص مخفي.

الصيغة الأساسية:

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Quantity { get; set; }
}

تعيين القيم الافتراضية:

public class Product
{
    public string Name { get; set; } = "Unnamed";
    public decimal Price { get; set; } = 0.0m;
    public bool IsAvailable { get; set; } = true;
}

تُعد الخصائص المنفذة تلقائيًا مثالية عندما لا تحتاج إلى التحقق من الصحة أو منطق مخصص في الـ getter أو الـ setter.

جرّب بنفسك

using System;
using Inventory;

class Program
{
    public static void Main(string[] args)
    {
        // قراءة المدخلات للعنصر الأول
        string name1 = Console.ReadLine();
        decimal price1 = Convert.ToDecimal(Console.ReadLine());
        
        // قراءة المدخلات للعنصر الثاني
        string name2 = Console.ReadLine();
        decimal price2 = Convert.ToDecimal(Console.ReadLine());
        
        // TODO: إنشاء كائنين من النوع Item باستخدام object initializers
        // تعيين خصائص Name و Price من قيم المدخلات
        
        // TODO: طباعة تفاصيل كل عنصر بالتنسيق التالي:
        // Item: {Name}, Price: {Price}, In Stock: {InStock}
    }
}
quiz iconاختبر نفسك

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

جميع دروس Object Oriented Programming