No âmbito da linguagem C#, analise o trecho de código a seguir. class Pessoa { private string nome; public string Nome { get { return nome; } set { nome = value; } } } A sintaxe C# permite que a sexta e a sétima linhas sejam resumidas pelo trecho:
- A){ get; set; }
Correta, porque { get; set; } é a forma de propriedade automática em C# para resumir os acessores sem lógica adicional.
- B){ get(); set(value); }
Errada, porque C# não usa get() nem set(value) nessa sintaxe de propriedades.
- C){ get nome; }
Errada, pois os operadores não fazem parte da sintaxe de propriedades em C#.
- D)get { -> nome } set { nome <= args[] }
Errada, porque a linguagem não aceita essa estrutura com -> nem com <= para getters e setters.
- E)get { return this.nome; } set { let this.nome = args[]; }
Errada, já que this e let não são usados dessa forma em propriedades C# e args[] não representa o valor do setter.
Gabarito: A
Em C#, propriedades servem para encapsular o acesso a campos privados, permitindo controlar leitura e escrita sem expor diretamente o dado interno. No exemplo, o campo nome guarda a informação, enquanto a propriedade Nome funciona como a porta de entrada e saída desse valor. Isso é bem comum em programação orientada a objetos: você protege o atributo e entrega uma interface mais limpa para quem usa a classe. Quando a propriedade não precisa de lógica extra no get e no set, a linguagem permite a forma automática, também chamada de auto-implemented property. Nela, o compilador cria o campo de apoio internamente, então você escreve só os acessores. Por isso, o trecho com a propriedade completa pode ser resumido por { get; set; }. O gabarito A está correto porque substitui exatamente os blocos get e set por uma propriedade automática com leitura e escrita. A semântica continua a mesma do código original para uso externo, mas o compilador passa a gerenciar o armazenamento interno. É uma economia elegante de linhas, sem perder funcionalidade. Já as outras alternativas inventam sintaxe que não existe em C#. Em prova de concurso, isso costuma aparecer para testar se você conhece o formato real das propriedades e não apenas a ideia geral. Aqui, o ponto central é simples: em C#, get e set podem ser abreviados quando não há regra adicional dentro deles.