this (C# Başvurusu)this (C# Reference)

this Anahtar sözcüğü, sınıfın geçerli örneğine başvurur ve bir genişletme yönteminin ilk parametresi için bir değiştirici olarak da kullanılır.The this keyword refers to the current instance of the class and is also used as a modifier of the first parameter of an extension method.

Not

Bu makalede, sınıf örneklerinin kullanımı this ele alınmaktadır.This article discusses the use of this with class instances. Uzantı yöntemlerinde kullanımı hakkında daha fazla bilgi için bkz. Uzantı yöntemleri.For more information about its use in extension methods, see Extension Methods.

Aşağıdakiler yaygın kullanımları thisaşağıda verilmiştir:The following are common uses of this:

  • Benzer adlarla gizlenen üyeleri nitelemek için, örneğin:To qualify members hidden by similar names, for example:

    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çirmek için, örneğin:To pass an object as a parameter to other methods, for example:

    CalcTax(this);
    
  • Dizin oluşturucular bildirmek için örneğin:To declare indexers, for example:

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

Statik üye işlevleri, sınıf düzeyinde olduklarından ve bir nesnenin parçası olarak değil, bir this işaretçisine sahip değildir.Static member functions, because they exist at the class level and not as part of an object, do not have a this pointer. Statik bir yöntemde başvurmak this için bir hatadır.It is an error to refer to this in a static method.

ÖrnekExample

Bu this örnekte, Employee sınıf üyelerini name nitelemek ve aliasbenzer adlarla gizlenen için kullanılır.In this example, this is used to qualify the Employee class members, name and alias, which are hidden by similar names. Ayrıca, başka bir sınıfa ait olan yöntemine CalcTaxbir nesne geçirmek için de kullanılır.It is also used to pass an object to the method CalcTax, which belongs to another class.

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 belirtimiC# language specification

Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi.For more information, see the C# Language Specification. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.The language specification is the definitive source for C# syntax and usage.

Ayrıca bkz.See also