Menu
Coddy logo textTech

מאפיינים במימוש אוטומטי

חלק מהיחידה תכנות מונחה עצמים במסלול ה-C# של Coddy. שיעור 10 מתוך 70.

מאפיינים שממומשים אוטומטית מאפשרים לך להצהיר על מאפיינים בלי לכתוב שדות גיבוי מפורשים. המהדר יוצר מאחורי הקלעים שדה פרטי מוסתר באופן אוטומטי.

במקום לכתוב את הקוד המפורט הזה:

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;
}

מאפיינים הממומשים אוטומטית אידיאליים כשאין צורך באימות או בלוגיקה מותאמת אישית ב-getter או ב-setter. הם שומרים על המחלקות שלך נקיות ומצמצמים משמעותית קוד תבניתי.

challenge icon

אתגר

קל

בואו נבנה מערכת מלאי פשוטה באמצעות מאפיינים שממומשים אוטומטית, כדי לעקוב אחר פריטים בחנות.

תיצרו שני קבצים כדי לארגן את הקוד:

  • Item.cs: הגדירו מחלקה בשם Item במרחב השמות Inventory, עם מאפיינים שממומשים אוטומטית עבור Name (string), Price (decimal) ו-InStock (bool). הגדירו ערכי ברירת מחדל: Name צריך לקבל כברירת מחדל את "Unknown",‏ Price את 0.0m, ו-InStock את true.
  • Program.cs: בקובץ הראשי, צרו שני אובייקטים מסוג Item באמצעות מאתחלי אובייקטים. קראו מהקלט את השם והמחיר של כל פריט, ולאחר מכן הדפיסו את הפרטים של כל פריט.

תקבלו ארבעה קלטים:

  • השם של הפריט הראשון
  • המחיר של הפריט הראשון
  • השם של הפריט השני
  • המחיר של הפריט השני

הדפיסו כל פריט בתבנית הזו:

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

נסו בעצמכם

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 באמצעות אתחול אובייקטים
        // הגדר את המאפיינים Name ו-Price לפי ערכי הקלט
        
        // TODO: הדפס את פרטי כל פריט בפורמט:
        // פריט: {Name}, מחיר: {Price}, במלאי: {InStock}
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר C# אונליין