← Questões de Programação

Programação · FGV · 2022

Questão comentada de Programação

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:

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.

Continue treinando

Questões relacionadas