Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A this palavra-chave refere-se à instância atual da classe. Ele também serve como um modificador para o primeiro parâmetro de um método de extensão.
Observação
Este artigo discute o uso para this se referir à instância receptora no membro atual. Para obter mais informações sobre seu uso em métodos de extensão, consulte a extension palavra-chave.
A linguagem C# faz referência a documentos da versão mais recentemente lançada da linguagem C#. Ele também contém a documentação inicial para funcionalidades em pré-visualizações públicas para o próximo lançamento do idioma.
A documentação identifica qualquer recurso introduzido pela primeira vez nas três últimas versões do idioma ou nas versões prévias públicas atuais.
Dica
Para descobrir quando um recurso foi introduzido pela primeira vez em C#, consulte o artigo sobre o histórico de versão da linguagem C#.
Usos comuns de this inclusão:
Qualificando membros ocultos por nomes semelhantes, como:
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; } }Passando um objeto como um parâmetro para outros métodos.
CalcTax(this);Declarando indexadores, como:
public int this[int param] { get => array[param]; set => array[param] = value; }
As funções de membro estático existem no nível da classe e não como parte de um objeto. Eles não têm um this ponteiro. Fazer referência a this um método estático é um erro.
No exemplo a seguir, os parâmetros name e alias os campos de ocultação com os mesmos nomes. A this palavra-chave qualifica essas variáveis como Employee membros de classe. A this palavra-chave também especifica o objeto para o método CalcTax, que pertence a outra classe.
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
*/
Especificação da linguagem C#
Para obter mais informações, consulte a Especificação da Linguagem C# . A especificação de idioma é a fonte definitiva para a sintaxe e o uso de C#.