Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Ainda não entendi direito quando usar { get; set; } ou só { get; }

No curso anterior foi explicado que get é usado para indicar que a propriedade pode ser lida, enquanto set indica que a propriedade pode ser escrita. Eu não entendi como é que isso é definido, até porque em alguns pontos do curso, os instrutores fizeram a reescrita de algumas propriedades que estavam como private e { get;} passaram para public e { get; set; }. Isso me deixou mais confuso ainda. Deixando mais explícita a minha dúvida: como que eu sei que a propriedade vai ser definida como { get; set; } ou apenas { get; }? Dúvida bônus: tem propriedade que é apenas { set; }?

Se alguém puder me explicar de uma forma simples, eu agradeço. Eu sou um total iniciante em programação, tem 3 meses que eu comecei a estudar e muitas vezes eu fico perdido porque eu ainda tô no básico do básico.

Valeu de antemão!

2 respostas
solução!

Oi Allan, tudo bem? 😊

Entendo sua confusão sobre o uso de get e set em propriedades C#.

Vou tentar simplificar para você.

Pense em get e set como portas de acesso a um valor dentro de um objeto.

get é a porta de saída, por onde você "pega" o valor.

set é a porta de entrada, por onde você "coloca" um novo valor.

Quando você tem { get; set; }, significa que a propriedade tem ambas as portas.

Você pode ler e escrever o valor.

Quando você tem apenas { get; }, significa que a propriedade tem apenas a porta de saída.

Você pode ler o valor, mas não pode alterá-lo diretamente.

A decisão de usar { get; set; } ou { get; } depende de como você quer que a propriedade seja usada.

Se você quer que o valor da propriedade possa ser alterado de fora da classe, use { get; set; }.

Se você quer proteger o valor da propriedade e impedir que ele seja alterado de fora da classe, use { get; }.

No curso, a mudança de private { get; } para public { get; set; } foi feita para permitir que a propriedade fosse acessada e modificada de fora da classe.

Isso foi necessário para o funcionamento do código em um determinado ponto.

Sobre sua dúvida bônus: sim, é possível ter propriedades apenas com { set; }.

Isso significa que você pode escrever um valor na propriedade, mas não pode lê-lo diretamente.

É menos comum, mas pode ser útil em situações específicas.

🎓 Para saber mais:

tux matrixCaso este post o tenha ajudado,marque-o como solucionado ☑️.Bons Estudos! 🤓

Obrigado, Luis. Acho que eu entendi melhor. Vou aproveitar e ler os links que você colocou na sua resposta, para pegar uma visão mais ampla do assunto!