1
resposta

Palavra reservada ": this" em

Aula C# parte 4, aula 4, Tornando as exceções mais ricas. Quando chamamos um construtor a partir de outro construtor da mesma classe, utilizamos a palavra reservada ": this", porém, e seu eu tiver mais que 2 ou 3 construtores, como vou saber qual que estou chamando?

1 resposta

Olá Leandro, tudo certo?

Isso já entra no campo do polimorfismo. Você só pode criar um construtor novo apenas se os tipos dos argumentos não forem iguais ao de outro construtor já existente.

Por exemplo, se o primeiro construtor recebe um int, o segundo construtor não poderá receber apenas um int, mas se esse segundo construtor receber um int e uma string, são terá problemas, ou receber dois int.

Então, para você conseguir usar o :this de algum outro construtor, ele tem que ser único.

Por exemplo, você tem um construtor:

Teste(int id, string nome)
{ 
    Id=id; 
    Nome=nome; 
}

E o segundo construtor:

Teste(int id, string nome, double salario) : this (id, nome)
{
    Salario = salario;
}

Você estará passando os argumentos para o único construtor possível que recebe um int e uma string, senão terá um erro, como na imagem a seguir:

Espero ter ajudado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software