Aracılığıyla paylaş


Bu anahtar sözcük

anahtar this sözcüğü, sınıfın geçerli örneğine başvurur. Ayrıca bir uzantı yönteminin ilk parametresi için değiştirici görevi görür.

Uyarı

Bu makalede, geçerli üyedeki alıcı örneğine başvurmak için kullanımı this ele alınmaktadır. Uzantı yöntemlerinde kullanımı hakkında daha fazla bilgi için anahtar sözcüğüne extension bakın.

C# dili başvuru belgesi, C# dilinin en son yayımlanan sürümünü gösterir. Ayrıca, yaklaşan dil sürümü için genel önizlemelerdeki özelliklere yönelik ilk belgeleri içerir.

Belgelerde ilk olarak dilin son üç sürümünde veya geçerli genel önizlemelerde sunulan tüm özellikler tanımlanır.

Tavsiye

Bir özelliğin C# dilinde ilk tanıtıldığı zamanları bulmak için C# dil sürümü geçmişi makalesine bakın.

Yaygın kullanım alanları this şunlardır:

  • Benzer adlara göre gizlenen niteleme üyeleri, örneğin:

    public class Employee
    {
        private string alias;
        private string name;
    
        public Employee(string name, string alias)
        {
            // Use this to qualify the members of the class
            // instead of the constructor parameters.
            this.name = name;
            this.alias = alias;
        }
    }
    
  • Bir nesneyi diğer yöntemlere parametre olarak geçirme.

    CalcTax(this);
    
  • Dizin oluşturucuları bildirme, örneğin:

    public int this[int param]
    {
        get => array[param];
        set => array[param] = value;
    }
    

Statik üye işlevleri bir nesnenin parçası olarak değil, sınıf düzeyinde bulunur. İşaretçileri yok this . Statik bir yöntemde öğesine this başvurmak bir hatadır.

Aşağıdaki örnekte, parametreler name ve alias aynı adlara sahip alanları gizler. anahtar sözcüğü bu this değişkenleri sınıf üyesi olarak Employee niteler. this anahtar sözcüğü, başka bir sınıfa ait olan yönteminin CalcTaxnesnesini de belirtir.

class Employee
{
    private string name;
    private string alias;

    // Constructor:
    public Employee(string name, string alias)
    {
        // Use this to qualify the fields, name and alias:
        this.name = name;
        this.alias = alias;
    }

    // Printing method:
    public void printEmployee()
    {
        Console.WriteLine($"""
        Name: {name}
        Alias: {alias}
        """);
        // Passing the object to the CalcTax method by using this:
        Console.WriteLine($"Taxes: {Tax.CalcTax(this):C}");
    }

    public decimal Salary { get; } = 3000.00m;
}

class Tax
{
    public static decimal CalcTax(Employee E)=> 0.08m * E.Salary;
}

class Program
{
    static void Main()
    {
        // Create objects:
        Employee E1 = new Employee("Mingda Pan", "mpan");

        // Display results:
        E1.printEmployee();
    }
}
/*
Output:
    Name: Mingda Pan
    Alias: mpan
    Taxes: $240.00
 */

C# dil belirtimi

Daha fazla bilgi için bkz. C# Dil Belirtimi. Dil belirtimi, C# söz dizimi ve kullanımı için kesin kaynaktır.

Ayrıca bkz.