3
respostas

C# - Orientação a objetos - Propriedades autoimplementadas

Os cursos que foram revisados estão com coteúdo muito raso ao meu ver. Explicações que eram mais bem detalhadas na versão inicial são simplesmente abandonadas nestas revisões, dificultando assim o entendimento do conteúdo. Estou com dúvidas sobre os seguintes pontos:

1 - palavra reservada "this" nas funções definidas em classe deixaram de ser necessárias porém não tem menções dos motivos

public void Depositar(double valor)
        {
            this.saldo += valor;
        }

2 - Implementação de propriedades (get; set;) e que substituem a necessidade de campos privados em classes ficou confuso, uma vez que o campo que era private passa a ser public e apenas recebe o valor através do "set" no vídeo "08 Propriedades autoimplementadas" .

3 respostas

André,

Então né... sobre o "THIS", tem tantas formas de nomear uma variável, acho desnecessário usar exatamente o mesmo nome (inclusive o CASE). Para diferenciar, pode-se usar maiúsculo / minúscula, pode colocar um "undescore" na frente da variável... tem até padrões recomendados.

Achei um exemplo que eu achei bacana na teia:

==========================================================

Qual é a necessidade do "this" dentro de um método em C#? RRS feed

Visual Studio Development > C#

A palavra-chave this é usada para acessar um membro da instância da própria classe. Em outras palavras, é usada para a diferenciação e identificação em uso e/ou modificação de membros (variáveis, campos, métodos,...) de uma classe, onde nessa, já existe um outro objeto com mesmo nome (em um parâmetro, por exemplo).

public class Microsoft
{
    private string WINDOWS_8_1 = "Windows 8.1";

    public string GetName()
    {
        //Não é necessário usar a palavra-chave this pois não existe nenhum outro membro próximo com o mesmo nome
        return WINDOWS_8_1;
    }

    public void SetName(string WINDOWS_8_1)
    {
        //É necessário usar a palavra-chave this pois há um membro próximo com o mesmo nome (parâmetro 1 - string WINDOWS_8_1)
        this.WINDOWS_8_1 = WINDOWS_8_1;
    }
}

quarta-feira, 2 de abril de 2014 20:24

https://social.msdn.microsoft.com/Forums/pt-BR/857bb747-2b7e-4e8e-86c9-fe82ab2b4be7/qual-a-necessida-do-quotthisquot-dentro-de-um-mtodo-em-c

==========================================================

Então, a palavra-chave this é usada para identificar o acesso a um membro da própria classe.

Editado Guilherme L. Santos quarta-feira, 2 de abril de 2014 20:25

Marcado como Resposta PauloJoséBR quinta-feira, 3 de abril de 2014 16:51

https://cursos.alura.com.br/forum/topico-prop-vs-propfull-63948

==========================================================

Sobre as propriedades, acredito que NÃO é gerada uma variável privada, mas você pode controlar on Get e o Set colocando private dentro deles ou até mesmo omitindo um, tornando somente escrita ou somente leitura.

Por favor, experimente os 3 atalhos "snippets":

  • 1 prop
  • 2 propfull
  • 3 propg

Verá construções diferentes para as propriedades, mas é somente uma questão do que você vai precisar no seu código.

==========================================================

Qual é a diferença entre prop e uma propriedade completa?

What is the difference between prop and a full property?

Eu não acho que haja alguma diferença no código compilado. A razão pela qual você pode querer fazer o caminho completo é se você deseja adicionar um valor padrão (o que pode ser feito no construtor em forma abreviada) ou adicionar código adicional ao getter ou setter

musefan

https://stackoverflow.com/questions/7434308/what-is-the-difference-between-prop-and-a-full-property

==========================================================

prop vs propfull

Publicado 4 anos atrás, em 24/06/2018

https://cursos.alura.com.br/forum/topico-prop-vs-propfull-63948

==========================================================

Veja também:

==========================================================

Snippets de código C#

Artigo - 09/06/2022 - 5 minutos para o fim da leitura

https://docs.microsoft.com/pt-br/visualstudio/ide/visual-csharp-code-snippets?view=vs-2022

==========================================================

Espero ter ajudado.

[]'s,

Fabio I.

Obrigado pelo retorno Fabio. Acho que clareou um pouco mais o entendnimento destes tópicos, irei efetuar testes pra validar meu entendimento geral.

Legal André, depois de verificar e você não precisar mais de ajuda, não esqueça de fechar o tópico, okay? Valew!