Menu
Coddy logo textTech

מילת המפתח 'this'

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

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

השתמשו ב־this כדי להבחין בין שדות לפרמטרים

public class Person
{
    private string name;
    private int age;
    
    public Person(string name, int age)
    {
        this.name = name;
        this.age = age;
    }
}

בלי this, הפרמטר היה מסתיר את השדה

// זה לא יעבוד כמצופה
public Person(string name, int age)
{
    name = name;  // מקצה את הפרמטר לעצמו!
    age = age;    // מקצה את הפרמטר לעצמו!
}

השתמשו ב־this עם מאפיינים

public class Product
{
    public string Name { get; set; }
    public decimal Price { get; set; }
    
    public Product(string name, decimal price)
    {
        this.Name = name;
        this.Price = price;
    }
    
    public void DisplayInfo()
    {
        Console.WriteLine($"{this.Name}: ${this.Price}");
    }
}

השתמש ב־this כדי לקרוא לבנאי אחר באותה מחלקה

public class Rectangle
{
    public int Width { get; set; }
    public int Height { get; set; }
    
    public Rectangle(int width, int height)
    {
        this.Width = width;
        this.Height = height;
    }
    
    // בנאי לריבועים
    public Rectangle(int size) : this(size, size)
    {
    }
}

דוגמה לשימוש:

Rectangle rect = new Rectangle(5, 10);
Rectangle square = new Rectangle(5);  // יוצר 5x5

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

challenge icon

אתגר

בינוני

השלם את המחלקה Product על ידי הוספת בנאי שמשתמש במילת המפתח this כדי להקצות את ערכי הפרמטרים למאפיינים. בנוסף, ממש את המתודה GetDescription() באמצעות this כדי לגשת למאפיינים.

המתודה GetDescription() צריכה להחזיר: "{Name} costs ${Price}"

נסו בעצמכם

using System;

class Program
{
    static void Main()
    {
        string name = Console.ReadLine();
        decimal price = decimal.Parse(Console.ReadLine());
        
        Product product = new Product(name, price);
        
        Console.WriteLine($"Product: {product.Name}");
        Console.WriteLine($"Price: ${product.Price}");
        Console.WriteLine(product.GetDescription());
    }
}
quiz iconבחנו את עצמכם

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

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

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