Como usar a palavra chave this em C#

Resumo : neste tutorial, você aprenderá sobre a palavra-chave this em C# e como usá-la de forma eficaz.

O que é a palavra-chave this em C#

Uma classe é um modelo para a criação de objetos. Para referenciar o objeto atual dentro da classe, você usa a palavra-chave this. Portanto, a palavra-chave this refere-se à instância atual da classe.

Para referenciar explicitamente um campo dentro de um método de uma classe, você usa a palavra-chave this, seguida pelo operador ponto (.) e o nome do campo assim:

this.FieldNameLinguagem de código:  C#  ( cs )

Da mesma forma, você pode usar a palavra-chave this para chamar explicitamente um método em outro método da classe:

this.MethodName(arguments)Linguagem de código:  C#  ( cs )

Exemplo de como usar a palavra-chave this em C#

O exemplo a seguir define a classe Person com os campos FirstName e LastName e dois métodos GetFullName() e SayHi():

// Person.cs

class Person
{
    public string FirstName;
    public string LastName;

    public string GetFullName()
    {
        return $"{this.FirstName} {this.LastName}";
    }
    public string SayHi()
    {
        return $"Hi, I'm {this.GetFullName()}.";
    }
}Linguagem de código:  C#  ( cs )

Neste exemplo, usamos a palavra-chave this para fazer referência aos campos FirstName e LastName no método GetFullName(). Além disso, usamos a palavra-chave this para chamar o método GetFullName() no método SayHi().

O seguinte cria uma nova instância da classe Person e chama o método SayHi():

// Program.cs

// Create a new instance of the Person class
Person p1 = new();
p1.FirstName = "John";
p1.LastName = "Doe";

// Show the fullname
Console.WriteLine(p1.GetFullName());

// Display the greeting
Console.WriteLine(p1.SayHi());Linguagem de código:  C#  ( cs )

Ao chamar o método p1.GetFullName(), a palavra-chave this faz referência ao objeto p1. Portanto, os campos FirstName e LastName são "John" e e"Doe" respectivamente.

O método SayHi() chama o método GetFullName() por meio da palavra-chave this. Portanto, o método p1.GetFullName() retorna a string "John Doe". Portanto, o método SayHi() retorna a string "Hi, I'm John Doe.".

Usando palavra-chave this do C# para encadeamento de métodos

O exemplo a seguir adiciona dois novos métodos SetFirstName() e SetLastName() à classe Person:

// Person.cs

class Person
{
    public string FirstName;
    public string LastName;

    public string GetFullName()
    {
        return $"{this.FirstName} {this.LastName}";
    }

    public string SayHi()
    {
        return $"Hi, I'm {this.GetFullName()}.";
    }

    public Person SetFirstName(string firstName)
    {
        this.FirstName = firstName;
        return this;
    }

    public Person SetLastName(string lastName)
    {
        this.LastName = lastName;
        return this;

    }
}Linguagem de código:  C#  ( cs )

Neste exemplo, os métodos SetFirstName() e SetLastName() atribuem seus argumentos aos campos FirstName e LastName e retornam a instância atual da classe Person.

O seguinte cria um novo objeto Person, chama os métodos SetFirstName(), SetLastName() e SayHi():

// Program.cs

Person p1 = new();

p1.SetFirstName("John");
p1.SetLastName("Doe");
string greeting = p1.SayHi();

Console.WriteLine(greeting);Linguagem de código:  C#  ( cs )

Como ambos os métodos SetFirstName() e SetLastName() retornam o objeto Person corrente, você pode substituir três instruções por uma instrução como segue:

// Program.cs


Person p1 = new();

string greeting = p1.SetFirstName("John")
                    .SetLastName("Doe")
                    .SayHi();

Console.WriteLine(greeting);Linguagem de código:  C#  ( cs )

Essa técnica é chamada de encadeamento de métodos .

Como funciona.

O SetFirstName()método retorna thisque é o p1objeto:

p1.SetFirstName("John");Linguagem de código:  C#  ( cs )

No entanto, você não precisa usar uma variável imediata para armazenar p1. E você pode chamar imediatamente SetLastName()o p1objeto assim:

p1.SetFirstName("John")
  .SetLastName("Doe");Linguagem de código:  C#  ( cs )

Como o método SetLastName() também retorna this aquele objeto p1, você pode chamar o método SayHi() nele imediatamente. Como o método SayHi() retorna uma string, você pode atribuí-la à variável greeting:

// Program.cs

Person p1 = new();

string greeting = p1.SetFirstName("John")
                    .SetLastName("Doe")
                    .SayHi();

Console.WriteLine(greeting);Linguagem de código:  C#  ( cs )

Resumo

  • A palavra-chave this do C# refere-se ao objeto atual da classe.
  • Use a palavra-chave this do C# para encadeamento de métodos para tornar o código mais conciso.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *