Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Quando usar {get; set;} e quando usar _atributo?

Venho do Java e estou com uma duvida, vejo que em alguns momentos do curso o professor declarou atributos publicos colocando get e set e chamou isso de propriedade:

public string Nome { get; set; }

E em outros momentos ele usou do underline e criou atributos privados, junto com a propriedade usando {get; set;}

private double _saldo
public double Saldo 
{
    get
    {
        // implementacao
    }
    set
    {
        // implementacao
    }
}

Estou com uma duvida no momento de usar um ou outros, devo sempre usar propriedades publicas com {get; set;} ou atributos privados com underline na frente do nome. O que eu percebi foi que quando o atributo e manipulado no corpo da classe, como o saldo e manipulado em sacar, depositar e transferir e usado underline junto com propriedade para seus getters e setters. E quando o atributo e mais simples como um dado bruto do objeto que nao e manipulado dentro da classe ou de seus filhos e usado apenas a propriedade publica com {get; set;}. Quais as boas praticas em C# para o uso de atributos e propriedades?

1 resposta
solução!

Olá Italo, tudo bem com vc?

Assim como o Java o C# é meio confuso em alguns aspectos devido sua evolução ao longo do tempo.

No caso do public string Nome { get; set; } trata se de uma evolução da linguagem, um açúcar sintático. Que chamamos de Auto-Implemented Properties. Se tiver curiosidade pode ler mais a respeito na documentação oficial Auto-Implemented Properties (C# Programming Guide)

No meu ponto de vista o seu entendimento está correto quando ao uso de _ underline. Podemos usar essa abordagem quando desejamos incluir alguma lógica de acesso / escrita em nossa propriedade.

Quanto as boas práticas, nos projetos que participei em C# não é muito comum ver essa abordagem do _ underline. Com exceção de códigos gerados automaticamente por alguma IDE ou algo do tipo.

Ah seja bem vindo ao C#!

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