1
resposta

Palavra reservada this

Prezado, por que no exemplo abaixo a variável _nome dispensou a referência 'this'?

private string _nome;
public string Nome
        {
            get
            {
                return _nome;
            }
            set
            {
                if (value.Length < 3)
                {
                    Console.WriteLine("Nome do titular precisa ter pelo menos 3 caracteres.");
                }
                else
                {
                    _nome = value;
                }
            }
1 resposta

Olá Mauro tudo bem? espero que sim!

Essa sua dúvida é muito interresante e eu nunca tinha parado pra pensar no por quê que isso ocorre, mas parando para analizar essa situação quando informamos o "this" antes da propriedade, o Visual Studio nos apresenta uma "ideia" (aquela lampada amarela, quando paramos o ponteiro do mause em cima da palavra this) e se clicamos no link em azul IDE0003, ele nos redireciona para essa página Preferências this e Me (IDE0003 e IDE0009), onde temos a seguinte explicação:

Essas duas regras definem se você prefere ou não o uso dos qualificadores this (C#) e Me. (Visual Basic). Para impor que os qualificadores não estejam presentes defina a severidade de IDE0003 como aviso ou erro. Para impor que os qualificadores estejam presentes defina a severidade de IDE0009 como aviso ou erro.

Para maiores detalhes, sugiro que abra o artigo e dê uma verifica a respeito dessas configurações no qual pode ser feito para que seja ou não obrigatório a presença do "this" em seu código. Por padrão essas configurações vem como false, por isso o Visual Studio recomenda que seja feito a remoção do "this", mas nada lhe impede de alterar essa configuração, para isso basta seguir os exemplos apresentados no artigo da Microsoft.

Uma observação que deve ser levada em consideração é que, se mesmo que você coloque o "this" com a configuração parametrizada como false, ou seja, o Visual Studio recomendará a exclusão do termos "this" seja realizada e você mantem o termo "this" no código, isso não irá apresentar falha de compilação no seu projeto.

Espero ter consigo te ajudar!