Este (translation from VPE for Csharp Reference)

The this palavra-chave se refere à corrente instância da classe e também é usado sistema autônomo um modificador do primeiro parâmetro de um método de extensão.

Observação:

Este artigo aborda o uso de this com as instâncias da classe. Para obter mais informações sobre seu uso em métodos de extensão, consulte Métodos de extensão (guia de programação translation from VPE for Csharp).

Estes são os usos comuns de this:

  • Para qualificar membros ocultados por nomes semelhantes, por exemplo:
public Employee(string name, string alias)
{
    // Use this to qualify the fields, name and alias:
    this.name = name;
    this.alias = alias;
}
  • Para passar um objeto sistema autônomo um parâmetro para outros métodos, por exemplo:

    CalcTax(this);
    
  • Para declarar indexadores, por exemplo:

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

Funções de membro estático, sistema autônomo eles existam no nível de classe e não sistema autônomo parte de um objeto não tem um this ponteiro. É um erro para se referir a this em um método estático.

Exemplo

Neste exemplo, this é usado para qualificar o Employee membros de classe name e alias, que estão oculto por nomes semelhantes. Também é usado para passar um objeto para o método CalcTax, que pertence a outra classe.

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
 */

Especificação da linguagem C#

Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:

  • 7.5.7 esse acesso

  • 10.3.8.4 esse acesso

Consulte também

Conceitos

Guia de Programação C#

Referência

Palavras-chave C#

Base (Referência C#)

Métodos (Guia de programação do C#)

Outros recursos

Referência C#