Menu
Coddy logo textTech

'this' Anahtar Kelimesi

Coddy'nin C# Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 4 / 70.

this anahtar kelimesi, bir sınıfın mevcut örneğine atıfta bulunur. Örnek üyelerine erişmek ve aynı isme sahip parametreler ile alanlar (fields) arasında ayrım yapmak için kullanılır.

Alanlar ve parametreler arasında ayrım yapmak için this kullanın

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

this olmadan, parametre alanı gölgelerdi

// Bu beklendiği gibi çalışmayacaktır
public Person(string name, int age)
{
    name = name;  // Parametreyi kendisine atar!
    age = age;    // Parametreyi kendisine atar!
}

this anahtar kelimesini özelliklerle kullanın

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

Aynı sınıftaki başka bir oluşturucuyu çağırmak için this kullanın

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;
    }
    
    // Kareler için yapıcı
    public Rectangle(int size) : this(size, size)
    {
    }
}

Örnek kullanım:

Rectangle rect = new Rectangle(5, 10);
Rectangle square = new Rectangle(5);  // 5x5 oluşturur

this anahtar kelimesi her zaman geçerli nesne örneğine başvurur. Parametre adları alan veya özellik adlarıyla eşleştiğinde özellikle yararlıdır, kodunuzu daha net hale getirir ve hataları önler.

challenge icon

Görev

Orta

Product sınıfını, parametre değerlerini özelliklere atamak için this anahtar sözcüğünü kullanan bir oluşturucu ekleyerek tamamla. Ayrıca özelliklere erişmek için this kullanarak GetDescription() yöntemini uygula.

GetDescription() yöntemi şunu döndürmelidir: "{Name} costs ${Price}"

Kendin dene

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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online C# derleyicisi