this (C# Başvurusu)

this anahtar sözcüğü, sınıfın geçerli örneğine başvurur ve bir uzantı yönteminin ilk parametresinin değiştiricisi olarak da kullanılır.

Not

Bu makalede, sınıf örnekleriyle kullanımı this ele alınmaktadır. Uzantı yöntemlerinde kullanımı hakkında daha fazla bilgi için bkz . Uzantı Yöntemleri.

Yaygın kullanım thisalanları şunlardır:

  • Benzer adlara göre gizlenen üyeleri nitelemek için, ö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 parametre olarak diğer yöntemlere geçirmek için, örneğin:

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

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

Statik üye işlevleri, bir nesnenin parçası değil, sınıf düzeyinde mevcut olduğundan işaretçiye sahip this değildir. Statik bir yöntemde başvuruda this bulunmak bir hatadır.

Örnek

Bu örnekte, this sınıf üyelerini Employeename nitelemek için kullanılır ve aliasbenzer adlar tarafından gizlenir. Ayrıca, bir nesnesini başka bir sınıfa ait olan yöntemine CalcTaxgeçirmek için de kullanılır.

class Employee
{
    private string name;
    private string alias;
    private decimal salary = 3000.00m;

    // 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: {0}\nAlias: {1}", name, alias);
        // Passing the object to the CalcTax method by using this:
        Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));
    }

    public decimal Salary
    {
        get { return salary; }
    }
}

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

class MainClass
{
    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# dili belirtimi

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

Ayrıca bkz.